Problem mit EOF()

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Problem mit EOF()

Beitrag 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.
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag 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())
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
Benutzeravatar
benny
Beiträge: 383
Registriert: 29.08.2004 09:18
Wohnort: Am Ende des www's
Kontaktdaten:

Beitrag 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
:?:
So long,
benny!
.
nur t0te f1sche schw1mmen m1t dem str0m - 00100 !
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Beitrag 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:
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag 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..
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Beitrag 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:
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Beitrag von Pelagio »

:?
@remi-meier

Dein Beispiel konnt auch nie funktionieren, weil EOF, wenn das Dateiende erreicht wurde immer 0 ausgegeben hat ansonsten <> 0.
:allright:
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag 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:
Christi
Beiträge: 154
Registriert: 31.08.2004 14:17
Kontaktdaten:

Beitrag 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
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Beitrag 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:
Antworten