Referenz - EOF
Syntax: EOF(f)
Typ: Funktion
Kategorie: Dateien
EOF steht für end-of-file (Ende der Datei) und gibt true (-1) zurück, wenn der Dateizeiger das Ende einer geöffneten Datei erreicht hat.
'f' ist die Nummer der Datei, die geprüft werden soll. Diese Nummer wird in der OPEN-Anweisung festgelegt.
Beispiel:
DIM AS INTEGER f
DIM AS STRING txt
' eine unbenutzte Dateinummer finden und Datei zum Einlesen öffnen
f = FREEFILE
OPEN "file.ext" FOR INPUT AS #f
' Daten so lange einlesen, bis das Ende erreicht wurde.
DO UNTIL EOF(f)
' Zeile aus der Datei einlesen und auf dem Bildschirm ausgeben
INPUT #f, txt
PRINT txt
LOOP
' Datei schließen
CLOSE #f
'Auf Tastendruck vor dem Beenden warten
SLEEP
Wegen der plattformbedingten Unterschiede in den vom Compiler verwendeten Bibliotheken kann es zu Problemen kommen, wenn die EOF-Funktion verwendet wird, um in Linux erstellte Textdateien (mit LF als Zeilenende) in einem für Windows compilierten Programm zu verwenden. Die DOS- und Linux-Compiler haben dieses Problem nicht. Eine mögliche Lösung des Problems ist die Verwendung des Dateimodus BINARY statt INPUT. LINE INPUT# und EOF können im oberen Beispiel immer noch genutzt werden und EOF wird zuverlässig arbeiten.
Unterschiede zu QB
- In QB sendet der COM-Port ein EOF, wenn dort keine Zeichen zum Einlesen warten.
- In QB geben Dateien, die im Dateimodus RANDOM oder BINARY geöffnet werden, bei EOF nur dann einen Wert ungleich 0 zurück, nachdem versucht wurde, hinter dem Dateiende zu lesen. In FreeBASIC gibt EOF true (-1) zurück, sobald der letzte Eintrag gelesen wurde.
Siehe auch:
LOF, LOC, OPEN, Dateien (Files)
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|