Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Dateiinhaltkontrolle

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Spezielle Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Meteorus



Anmeldungsdatum: 03.02.2007
Beiträge: 405

BeitragVerfasst am: 03.02.2007, 16:11    Titel: Dateiinhaltkontrolle Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 03.02.2007, 20:03    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Meteorus



Anmeldungsdatum: 03.02.2007
Beiträge: 405

BeitragVerfasst am: 04.02.2007, 18:01    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 04.02.2007, 18:29    Titel: Re: Dateiinhaltkontrolle Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 04.02.2007, 18:35    Titel: Antworten mit Zitat

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, 22:38, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 04.02.2007, 19:47    Titel: Antworten mit Zitat

lof? ich dacht das hieß eof? End-Of-File? durchgeknallt durchgeknallt
Bin ich da jetz auf nem Falschen Dampfer?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 04.02.2007, 19:56    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Spezielle Fragen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz