Seite 2 von 2
Verfasst: 26.01.2006 16:41
von IngolfZ
Ich weiss zwar nicht, warum du die Zeilen Byteweise einliest, aber da könnte der Hund begraben liegen.
Am Ende der Zeilen steht noch (unsichtbar) #CR$ und #LF$
Die musst du rausfieseln. Genau das hast du vorher mit dem Entfernen hinter dem letzten Zeichen gemacht.
Verfasst: 26.01.2006 20:41
von Konne
also der Befehl ReadString sollte dein Freund sein! Dann kannst du den String mit Mid oder was weiß ich noch Teilen und hast dann alle deine Zahlen

Durch ReadString werden die Umbrüche entfernt und alles sollte kein Problem mehr sein.
Verfasst: 26.01.2006 23:20
von AND51
Sylvia hat geschrieben:Probier mal das hier:
Code: Alles auswählen
OpenFile(1,"C:\lotto.txt")
While Eof(1)=0
Debug ReadString()
Wend
CloseFile(1)
So, und da hab ich mal ne frage, ohne jetzt die anderen folgenden Threads gelesen zu haben.
Das habe ich bereits woanders gefragt, aber keine Antwort drauf erhalten...
http://forums.purebasic.com/german/view ... i+einlesen
Bei mir muss ich immer die daten zeilenweise einlesen, solange Eof() <> -1, woran liegt das? Ich meine ergebnis = 0 Andergenis <> -1 ist immer dann der fall, wenn ergebnis = 0. mache ich aber while eof() = 0, dannliets er sich dumm und dämlich!
bei repeat schleifen sind die bedingungen ja umgekerht, also: until Eof() = 0, funzt bei mir aber auch nicht... (bei eof() habe ich schon jeweils immer den richtige dateihandle drin). weiß jemand, was ich falsch mache?
Verfasst: 26.01.2006 23:23
von HeX0R
Wie kommst du denn auf -1 ?
Eof(#Blubb) ergibt <> 0 am Ende des Files, sonst 0
Verfasst: 27.01.2006 22:03
von AND51
Also nochmal:
Wenn irgendwo in der Datei, dann Eof() = 0.
Ende der Dtaei erreicht, dann Eof() <> 0, korrekt so, Chef?
OK, also entweder bin ich ein bisschen doof

oder bei mir auf dem System muss ich immer prüfen, ob eof() = -1 der fall ist, wenn ja, dann ende erreicht... wobei -1 <> 0. aber ich glaube, programme, die ich wie anfangs beschrieben laufen lasse, hängen sich irgendwie beim lesen auf... werds mal mit hexors idee probiern.
Verfasst: 27.01.2006 22:49
von HeX0R
Hilfe hat geschrieben:
Die Funktion gibt einen Wert ungleich 0 zurück, wenn das Ende der angegebenen '#Datei' erreicht wurde
Anders ausgedrückt:
Der Rückgabewert ist nicht wirklich definiert.
Fakt ist, er ist ungleich 0 beim Erreichen des Endes.
Kann also sein, dass du bei einem File 1, beim näxten -1 oder irgendne andere Hausnummer kriegst.
Deswegen <> 0 testen und nicht drüber nachdenken

Verfasst: 27.01.2006 23:37
von AND51
OK, hab verstanden. Ich wollts ja so machen wie in der Hilfe oder du grad beschrieben hast.
Aber wenn ich alle
ReadStrings()'s
Debuggen lasse, dann hängt das Programm sich auf, bzw. gibt unendlich Zeilen aus... Kann sein, dass ich was falsch gemacht habe, will ich auch gar nicht abstreiten, aber dass mir dieser "Fehler" bei zwei verschienden Projekten unterläuft, finde ich schon etwas seltsam...
Egal, mit jeder PB-Zeile wird man schlauer.

Verfasst: 28.01.2006 18:17
von OptimusPrime
Ich arbeite viel mit grossen Textdateien,
wie man korrekt einliest und ausgibt findest Du z.B. hier :
Übrigens kannst Du die einzelenen LottoZahlen mit StringField()
anhand des Leerzeichens trennen um später mit den Werten zu arbeiten.
Ich weiss ja nicht, wofür Du diese brauchst, aber sicherlich für Statistik oder Auswertung der eigenen Kreuzchen
http://forums.purebasic.com/german/viewtopic.php?t=6679
