 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Helli M.

Anmeldungsdatum: 20.12.2004 Beiträge: 29 Wohnort: Burgenland in Österreich
|
Verfasst am: 02.01.2005, 18:47 Titel: eingaben speichern in Data? Geht das?? |
|
|
Hallo an Euch!!!
Ich möchte gerne so eine art CD Verwaltung machen, nach dem Namen und Ausgabe der CD fragen, und dann nach dem Inhalt. Das soll gespeichert werden, und bei jedem Start sollte das das Prog noch wissen.
In der online hilfe hab ich bei Data nicht das richtige gefunden...
Wie geht es, dass sich das Programm die Eingabe merkt, und als Data anlegt?
Mit:
? "Wie ist der Name der CD?"
input nameuausg$
data nameuausg$
geht es nicht... irgendwie verstehe ich das es nicht gehen kann, weil ja nameuausg$ erst mal gespeichert werden muß, und sich nicht jedesmal ändert, oder weil auch noch was dazukommt... wie macht man das wieder? Wie heißt das Schlüsselwort dazu??
Ich seh schon wieder den Wald vor lauter Bäumen nicht...
Tut mir Leid, wenn ich Euch mit solchen Fragen quäle....
Aber ich danke Euch schon jetzt für Eure Hilfe!
Alles Gute
und viele Grüße
Helli |
|
Nach oben |
|
 |
Mecki Igel

Anmeldungsdatum: 10.09.2004 Beiträge: 985 Wohnort: Niederbayern
|
Verfasst am: 02.01.2005, 19:45 Titel: |
|
|
Hi Helli
Na, also ich würde das nicht mit DATA lösen, weil du dann die BAS-Datei selbst umschreiben lassen müsstest.
Speicher doch einfach in eine externe Datei:
Code: | 'Deine Bisherigen Eingaben aus der Datei einlesen:
DIM TrackName$(200), TrackAutor$(200)
OPEN "Index.txt" for input as #1
do until eof(1)
nr = nr +1
input #1, TrackName$(nr), TrackAutor$(nr)
loop
close #1
'Damit liest du die Daten aus der Datei in ein Array.
'Und so schreibst du sie wieder rein (speichern)
'TrackAnzahl festlegen nicht vergessen
DIM TrackName$(200), TrackAutor$(200)
OPEN "Index.txt" for output as #1
For Nr = 1 TO TrackAnzahl
Write #1, TrackName$(nr), TrackAutor$(nr)
Next
close #1 |
Der Text-Dateiinhalt sieht dann so aus, dass es 2 Spalten gibt, diese werden durch ein Komma getrennt und der Inhalt der "Spalten" steht in Anführungszeichen. Beispiel:
Code: | "BaBaBanküberfall", "Erste Allgemeine Verunsicherung"
"Flugzeug (Liebste Mein)", "Erste Allgemeine Verunsicherung"
"Blinded by the night", "unbekannt (sagen wir mal ;-) )" |
Grüßle,
Mecki _________________ » Yodl.de: So sucht man gestern.
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de |
|
Nach oben |
|
 |
Helli M.

Anmeldungsdatum: 20.12.2004 Beiträge: 29 Wohnort: Burgenland in Österreich
|
Verfasst am: 03.01.2005, 19:29 Titel: |
|
|
Hallo Mecki!!!
Ich habe gleich ausprobiert (ehrlich gesagt, nur abgeschrieben), was Du mir gezeigt hast!!
Aber er sucht die Datei, die er OPEN soll...
Wie lege ich so eine Datei an, die leer ist, aber in der alles rein kommen soll??
ICh dachte das ist schon OPEN???
Du hast die Endung .txt geschrieben, wo ist diese "Index.txt" Datei??
Das ist ja die Endung die der MS Editor hat??
Jetzt hast Du mich aber völlig verwirrt....Muß ich diese "Index.txt" auch mit DIM anlegen?
Als ich Deine Antwort zum ersten mal gelesen habe, hab ich mich gefreut, dass ich einmal alles auf Anhieb verstanden habe, da bin ich aber schnell aufgewacht...
Tut mir echt Leid, dass ich es (noch) nicht verstehe!!!
Ich danke Dir jedenfalls für Deine Geduld mit meinen kleinen, großen Problemen!!!
Liebe Grüße
Helli |
|
Nach oben |
|
 |
Mecki Igel

Anmeldungsdatum: 10.09.2004 Beiträge: 985 Wohnort: Niederbayern
|
Verfasst am: 03.01.2005, 19:36 Titel: |
|
|
Hi Helli
Ja klar, die gibt es noch nicht. Erstellen tust du eine Datei erst mit OPEN... FOR OUTPUT
Daher erstellst du am Besten einmal die Index.TXT mit 0 Bytes und fügst dann entweder manuell eine Zeile mit den "" usw ein, wie oben beschrieben, oder du lässt mit einem Programm die Variabeln speichern.
Grüßle,
Helli
PS: Vielleicht musst du, um die Dateiendung unter Windows festzulegen erst noch in den Ordneroptionen die blöde Option abwählen, dass Windows bei "bekannten Dateitypen" die Endungen ausblendet. _________________ » Yodl.de: So sucht man gestern.
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de |
|
Nach oben |
|
 |
Helli M.

Anmeldungsdatum: 20.12.2004 Beiträge: 29 Wohnort: Burgenland in Österreich
|
Verfasst am: 04.01.2005, 18:31 Titel: |
|
|
Hallo Mecki!!
Seit Gestern versuche ich weiterzukommen....
Alles was ich bekomme, ist das Meckern von QB....
Ich habe open "test.txt" for output as #1 angelegt.
Aber er sagt immer, er findet die Datei nicht....
In der Onlinehilfe steht auch keine andere Syntax...
Du schreibst, ich soll sie mit 0 Bites erstellen, wie geht denn das wieder??
Und was soll ich einfügen, und wohin??? Meinst Du die ""??
Ich dachte, diese Datei mit der Zeile (open "test.txt" for output as #1) ist schon mit 0 Bites erstellt???
Oh Mecki, Du glaubst gar nicht wie schwierig das ist, bis im Gehirn endlich mal die Neuralverbindungen hergestellt sind....Ich meine das schöne "AHA Erlebnis!!! !!!!
Kannst Du mir weiterhelfen???
Vielen Dank
und liebe Grüße
Helli |
|
Nach oben |
|
 |
Mecki Igel

Anmeldungsdatum: 10.09.2004 Beiträge: 985 Wohnort: Niederbayern
|
Verfasst am: 04.01.2005, 19:12 Titel: |
|
|
Hi Helli
Also wenn du einfach schreibst Code: | OPEN "Text.txt" FOR OUTPUT AS #1
CLOSE #1 | muss die Datei erstellt werden - in der Verzeichnis, das gerade aktiv ist.
Vielleicht hast du das CLOSE vergessen?
Naja, 0 Bytes heißt einfach nur: ohne Inhalt
Jetzt kannst du die Datei mit dem Code von mir mit OPEN ... FOR INPUT einlesen und Zeile für Zeile auslesen. => die Datei hat 0 Zeilen => in der Variabeln is nix drin.
Aber: er meckert nicht mehr rum beim ersten OPEN.
Anschließend lässt du den Benutzer ein paar Variabeln eingeben und diese Speicherst du dann zur Datei hinzu mit der Methode, wie ich es weiter oben schon geschrieben habe (das Code-Beispiel)
Beim nächsten Start des Progamms ist dann beim OPEN .. FOR INPUT bereits eine Zeile einlesbar.
Eine andere Möglichkeit wäre noch, für den ersten Start manuell die Datei mit z.B. Notepad zu öffnen und eine Zeile selbst hineinzuschreiben, damit das Prorgamm was zum futtern hat
Da wäre der Dateiinhalt dann beispielsweise Code: | "BaBaBanküberfall", "Erste Allgemeine Verunsicherung"
"Flugzeug (Liebste Mein)", "Erste Allgemeine Verunsicherung"
"Blinded by the night", "unbekannt (sagen wir mal ;-) )" |
Dies würde aber auch drinstehen, wenn du schreibst
Code: | OPEN "datei.txt" FOR OUTPUT as #1
WRITE #1, "Bababanküberfall", "EAV"
WRITE #1, "Flugzeug", "EAV"
CLOSE #1 |
usw.
bzw. wenn du die Variabeln WRITEst.
Grüßle,
Mecki _________________ » Yodl.de: So sucht man gestern.
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de |
|
Nach oben |
|
 |
Helli M.

Anmeldungsdatum: 20.12.2004 Beiträge: 29 Wohnort: Burgenland in Österreich
|
Verfasst am: 06.01.2005, 01:49 Titel: |
|
|
Hallo Mecki!!!
Ich weiß nicht, was ich falsch mach, es geht nicht...
Schau mal, was sagst Du? (Ich hab es so einfach wie möglich versucht, zum probieren)
cls
dim nam$ (10)
open "test.txt" for output as #1
close #1 'bringt eine neue Fehlermeldung, hab ich weggelassen
do until eof (1)
nr = nr+1
? "gib was ein"
input "name"; nam$
write #1, nam$
loop
close #1
.....
Und da meckert er immer bei der do Schleife, dass es ein falscher Dateimodus ist...wieso???
Wenn ich das do loop weglasse, dann geht es.
Hab ich das recht verstanden, dass das do loop ermöglichen soll, so oft was einzugeben wie man möchte??
Hach, ich will auch mal ein Erfolgserlebnis haben....die anderen denken nach, wie sie komplexe Probleme hinkriegen, und ich plag mich mit den Grundzügen herum.....
Tut mir leid, bin leicht frustriert
Ich bin schon neugierig, was ich jetzt wieder für Blödsinn gemacht hab..
Liebe Grüße
Helli |
|
Nach oben |
|
 |
Gremlin

Anmeldungsdatum: 12.12.2004 Beiträge: 142 Wohnort: Heinsberg
|
Verfasst am: 06.01.2005, 01:57 Titel: |
|
|
QB-Hilfe hat Folgendes geschrieben: | Wenn das Ende einer sequentiellen Datei erreicht wurde, gibt die Funktion
EOF -1 (wahr) zurück. Benutzen Sie die EOF-Funktion, um auf Dateiende zu
prüfen, während Daten eingelesen werden. Auf diese Weise vermeiden Sie die
Fehlermeldung Eingabe nach dem Ende. |
Wenn du jetzt was in die Datei reinschreibst, kannst du ja nicht ohne Daten aus der Datei dastehen.
Ich weiß leider nicht, wie du das nun handhaben willst (hab den thread jetzt nicht wirklich verfolgt). Danach versuch ich gerne weiterzuhelfen. _________________ Tja, hier konnte ihre Werbung stehen.
Pech gehabt.  |
|
Nach oben |
|
 |
Mecki Igel

Anmeldungsdatum: 10.09.2004 Beiträge: 985 Wohnort: Niederbayern
|
Verfasst am: 06.01.2005, 14:23 Titel: |
|
|
Hi Helli,
na, ich hab dir doch oben schon einen Code geschrieben:
Code: | 'Deine Bisherigen Eingaben aus der Datei einlesen:
DIM TrackName$(200), TrackAutor$(200)
OPEN "Index.txt" for input as #1
do until eof(1)
nr = nr +1
input #1, TrackName$(nr), TrackAutor$(nr)
loop
close #1
'Damit liest du die Daten aus der Datei in ein Array.
* Stern (siehe unten die Erklärung)
'Und so schreibst du sie wieder rein (speichern)
'TrackAnzahl festlegen nicht vergessen
DIM TrackName$(200), TrackAutor$(200)
OPEN "Index.txt" for output as #1
For Nr = 1 TO TrackAnzahl
Write #1, TrackName$(nr), TrackAutor$(nr)
Next
close #1 |
Erklärung zum Stern:
An diese Stelle fügst du nun eine Routine, wo du sagst, welchen Eintrag du bearbeiten möchtest.
Vorher wurde alles aus der Datei in die beiden Arrays TrackName$() und Tracktitel$() eingelesen. Nach dem Eingeben wirds dann wieder gespeichert. Siehe Quellcode oben.
Ganz simpel kann die Editier-Routine so aussehen:
Code: | INPUT "Eintragsnummer",EditNr
?
?"Der gespeicherte Titel war: "; TrackName$(EditNr)
INPUT "Neuer Titel:", TrackName$(EditNr)
?
?"Der gespeicherte Autor war: "; , TrackAutor$(EditNr)
INPUT "Neuer Autor:", TrackAutor$(EditNr) | Natürlich kannst du noch hinzufügen, dass nichts geändert wird, wenn man einfach Enter drückt und sowas - ist ja klar.
Viel Erfolg,
Mecki _________________ » Yodl.de: So sucht man gestern.
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de |
|
Nach oben |
|
 |
Helli M.

Anmeldungsdatum: 20.12.2004 Beiträge: 29 Wohnort: Burgenland in Österreich
|
Verfasst am: 08.01.2005, 19:32 Titel: |
|
|
Hallo Mecki!!!
Vielen Dank, dass Du mir alles gemacht hast, ich komm mir echt blöd vor... Aber jetzt glaub ich, fängt es an, bei mir zu "sickern"....
Ich bekomme schön langsam eine Vorstellung, wie es sein müsste!!
Hoffentlich geht "der Knopf bald auf", bei mir!!!
Wenn ich es vor mir sehe, kommt es mir so logisch vor, wieso kann ich es mir dann nicht vorher vorstellen???
Also, nochmals vielen Dank!!!!
Liebe Grüße
Helli |
|
Nach oben |
|
 |
Helli M.

Anmeldungsdatum: 20.12.2004 Beiträge: 29 Wohnort: Burgenland in Österreich
|
Verfasst am: 08.01.2005, 19:35 Titel: @ Gremblin!! |
|
|
Hallo Gremblin!!!
Vielen Dank für die Erklärung!!
Ich werde mich wirklich an Dich wenden, wenn ich noch Hilfe brauche, hoffentlich bereust Du Dein Hilfeangebot nicht???
Liebe Grüße
Helli |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|