Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Meteorus
Anmeldungsdatum: 03.02.2007 Beiträge: 405
|
Verfasst am: 03.02.2007, 17:11 Titel: Dateiinhaltkontrolle |
|
|
Hallo Zusammen,
ich bin ganz neu hier im Forum und habe ein Problem. Ich bin dabei ein Vokabellernproogramm zu schreiben. Ich habe es jetzt soweit gebracht, das die Vokabeln immer in einer Textdatei abgespeichert werden. Wenn ich jetzt einen Vokabeltest Simuliere, und er kommt auf eine Textdatei mit keinem Inhalt so sagt er mir das die datei bereits geöffnet ist, obwohl ich ihm eigentlich gesagt habe, dass wenn die Datei leer ist er zu einen anderen Punkt zurück springen soll.
Ich habe es folgendermassen geschrieben:
201
OPNEN "C:\vok\data\d1.txt" FOR INPUT AS #1
INPUT #1, a$
IF a$ = "" THEN GOTO 10
.......
wie kann ich es schafen, dass wenn die Datei leer ist (bz. nur "" enthält) zu Punkt Nr. 10 springt?
mfg Meteorus |
|
Nach oben |
|
|
Skilltronic
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 03.02.2007, 21:03 Titel: |
|
|
Willkommen im Forum!
Ob in einer Datei keine weiteren Einträge vorhanden sind, prüft man eigentlich mit EOF (Dateinummer). EOF teht für end of file. Es wundert mich ein bisschen, dass du keine Fehlermeldung "Einlesen nach Dateiende" bekommst. Aber wie dem auch sei, du solltest vor dem Sprung die geöffnete Datei mit CLOSE #1 schliessen. Vokabelprogramme waren hier schon Thema, schau doch mal in der Forensuche, vielleicht findest du etwas, das dir weiterhilft. Ansonsten kann ich dir noch www.qbasic.de empfehlen. Dort gibt es das "QB-Kochbuch" und die Monster-FAQ, dort kannst du dir auch noch Tips zum benutzen von Dateien holen.
Gruß
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
|
Meteorus
Anmeldungsdatum: 03.02.2007 Beiträge: 405
|
Verfasst am: 04.02.2007, 19:01 Titel: |
|
|
Vielen Dank für deine Antwort. Ich habe jetzt mal im QB-Kochbuch im im Monster-FAQ nachgeschut undhabe aber noch keine überzeugende lösung gefunden.
mfg Meteorus |
|
Nach oben |
|
|
Michael Frey
Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 04.02.2007, 19:29 Titel: Re: Dateiinhaltkontrolle |
|
|
Meteorus hat Folgendes geschrieben: | wie kann ich es schafen, dass wenn die Datei leer ist (bz. nur "" enthält) zu Punkt Nr. 10 springt? |
Code: | 201
OPEN "C:\vok\data\d1.txt" FOR INPUT AS #1
INPUT #1, a$
IF lof(1)=0 THEN GOTO 10
....... |
So etwa. _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 04.02.2007, 19:35 Titel: |
|
|
so nicht.
wenn lof(1) 0 ist, kann er auch kein input #1,a durchführen. da kommt schon ein fehler. wenn die datei gar nicht existiert, kommt schon beim open ein fehler. ich kontrollierte in qb immer so die dateien:
Code: |
open datei for binary as #1 'da kommt kein fehler!
if lof(1) = 0 then 'exisitert nicht...
close #1
|
_________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Zuletzt bearbeitet von Jojo am 04.02.2007, 23:38, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 04.02.2007, 20:47 Titel: |
|
|
lof? ich dacht das hieß eof? End-Of-File?
Bin ich da jetz auf nem Falschen Dampfer? |
|
Nach oben |
|
|
Skilltronic
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 04.02.2007, 20:56 Titel: |
|
|
Mit LOF (length of file) kann man die Dateilänge in Byte ermitteln, mit EOF wird geprüft, ob weitere Einträge vorhanden sind. _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
|
|