Seite 1 von 1
Problem mit EOF()
Verfasst: 19.09.2005 19:14
von Pelagio
@ Hallo Leidensgenossen
Ich wolte einige Programme von mir auf die neue PB (9.34) Version Updaten dabei ist mir ein Problem aufgefallen das ich als BUG klassifizieren würde. das Problem ist zwar nicht lebendsbedrohlich, da ich auch mit PBOSL arbeite und diesen Fehler umgehen kann, aber er ist Vorhanden und sollte deswegen auch bekannt gemacht werden.
Folgender Code läuft bei mir nicht mehr:
Code: Alles auswählen
If ReadFile(0, "Daten.txt")
Debug Lof()
While Eof(0)<>0
Debug ReadString()
Wend
CloseFile(0)
Else
MessageRequester("Information","Konnte Datei nicht öffnen!")
EndIf
End
EOF ergibt keinen Wert mehr.
Verfasst: 19.09.2005 19:23
von zigapeda

9.34 *habenwill*
ne spaß beiseite, was bekommst du für ne fehler meldung?
normal sollte der code schon funktionieren:
PB Hilfe hat geschrieben:Code: Alles auswählen
If ReadFile(0,"Text.txt") ; wenn die Datei geöffnet werden konnte, setzen wir fort...
While Eof(0) <> 0 ; sich wiederholende Schleife bis das Ende der Datei ("end of file") erreicht ist
Debug ReadString() ; Zeile für Zeile im Debugger-Fenster anzeigen
Wend
CloseFile(0) ; schließen der zuvor geöffneten Datei
Else
MessageRequester("Information","Konnte Datei nicht öffnen!")
EndIf
und das ist ja fast das gleiche was du hast (bis auf das debug lof())
Verfasst: 19.09.2005 19:28
von benny
Hab immernoch 3.93 und weiß auch nicht, was Du vor hast ... aber probier mal

Verfasst: 19.09.2005 19:28
von Pelagio

Schreibfehler, ich meinte 3.94.
@zipapeda:
Mir ist bekannt das das Beispiel dem in der Hilfe gleicht, dies ist gewollt.
Eine Fehlermeldung bekomme ich nicht, EOF ergibt immer nur 0 als Ergebnis aus.
Probiere das Hilfebeispiel und du wirst es auch hier keine Daten anzeigen können. LOF habe ich nur mit aufgenommen um sicher zu sein Datenzu haben.

Verfasst: 19.09.2005 19:29
von remi_meier
Der lief nie!
Code: Alles auswählen
If ReadFile(0, "c:\plugin.ini")
Debug Lof()
While Eof(0)=0
Debug ReadString()
Wend
CloseFile(0)
Else
MessageRequester("Information","Konnte Datei nicht öffnen!")
EndIf
End
Edit: Mist zu langsam..
Verfasst: 19.09.2005 19:31
von Pelagio
@BENNY
Mir ist bekannt, das dass Beispiel in Version 3.93 noch funktionierte.
Ich richte mich hiermit explizit an Progger die schon mit 3.94 arbeiten.

Verfasst: 19.09.2005 19:34
von Pelagio
@remi-meier
Dein Beispiel konnt auch nie funktionieren, weil EOF, wenn das Dateiende erreicht wurde immer 0 ausgegeben hat ansonsten <> 0.

Verfasst: 19.09.2005 19:37
von remi_meier
Hab für dich extra nochmals die 3.93 abgestaubt und da läuft meins, deins
ist falsch...
Sry, musst dich irren

Verfasst: 19.09.2005 19:37
von Christi
Die Funktion gibt einen Wert ungleich 0 zurück, wenn das Ende der angegebenen '#Datei' erreicht wurde, andernfalls wird 0 zurückgegeben.
Und das funzt auch einwandfrei.
edit: @remi_meier: Zustimmung
Verfasst: 19.09.2005 19:50
von Pelagio
Korrekt Leute, ich war mal wieder zu schnell:
EOF steht für 'End Of File' (Ende der Datei). Die Funktion gibt einen Wert ungleich 0 zurück, wenn das Ende der angegebenen '#Datei' erreicht wurde, andernfalls wird 0 zurückgegeben.
Allerdings hat dies nichts damit zu tun, das das Beispiel unter ReadFile()
in Version 3.94 nicht funktioniert.
Code: Alles auswählen
If ReadFile(0,"Text.txt") ; wenn die Datei geöffnet werden konnte, setzen wir fort...
While Eof(0) <> 0 ; sich wiederholende Schleife bis das Ende der Datei ("end of file") erreicht ist
Debug ReadString() ; Zeile für Zeile im Debugger-Fenster anzeigen
Wend
CloseFile(0) ; schließen der zuvor geöffneten Datei
Else
MessageRequester("Information","Konnte Datei nicht öffnen!")
EndIf
Ausser in der Version die ich aus euren Beiträgen herauslese, das muss ich noch checken:
