Seite 1 von 1

Problem mit EOF()

Verfasst: 19.09.2005 19:14
von Pelagio
:lamer:
@ 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
:o 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

Code: Alles auswählen

 While Eof(0)=0
:?:

Verfasst: 19.09.2005 19:28
von Pelagio
:praise:
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.
:coderselixir:

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
:allright:
@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.
:allright:

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.
:allright:

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 :wink:

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
:iamwithstupid:

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:

Code: Alles auswählen

While Eof(0)=0: Debug ReadString(): Wend
:coderselixir: