Anfängerfragen zum Programmieren mit PureBasic.
Icke
Beiträge: 143 Registriert: 08.09.2004 13:19
Beitrag
von Icke » 26.07.2005 19:37
Wie ist da der eleganteste Weg? Ich habe eine Textdatei deren Inhalt ich von unten nach oben auslesen möchte.
Beispiel :
Code: Alles auswählen
Dim t$(10000)
ReadFile(0,"d:\wg.txt")
Repeat
t$(i)=Str(Loc())
a$=ReadString()
i+1
Until Eof(0)
Repeat
i-1
FileSeek(Val(t$(i)))
a$=ReadString()
Debug a$
FileSeek(Val(t$(i)))
Until i=0
Ich würde gerne auf das Array verzichten. Wer zeigt einem Blinden den Weg?
Kiffi
Beiträge: 10719 Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
Beitrag
von Kiffi » 26.07.2005 20:08
Datei ganz normal in den Speicher laden, diesen dann aber rückwärts auslesen:
Code: Alles auswählen
FF = ReadFile(#PB_Any, DeineDatei)
If FF
MemBuff = AllocateMemory(Lof())
ReadData(MemBuff, Lof())
CloseFile(FF)
DateiInhalt$= PeekS(MemBuff)
FreeMemory(MemBuff)
For intI = Len(DateiInhalt$) To 0 Step -1
Debug Mid(DateiInhalt$, intI, 1)
Next
EndIf
Grüße ... Kiffi
a²+b²=mc²
Icke
Beiträge: 143 Registriert: 08.09.2004 13:19
Beitrag
von Icke » 26.07.2005 20:45
Thx für die Lösung im Ansatz, ich möchte Zeilenweise auslesen. Könnte dann nach Steuerzeichen suchen um LF zu erkennen, das gefällt mir dann schon viel besser als mein Schnipsel...
Kiffi
Beiträge: 10719 Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
Beitrag
von Kiffi » 26.07.2005 21:36
> ich möchte Zeilenweise auslesen. Könnte dann nach Steuerzeichen suchen
> um LF zu erkennen
dann empfehle ich noch die Verwendung von [c]CountString()[/c] und [c]StringField()[/c]
Code: Alles auswählen
For intI = CountString(DateiInhalt$, #LF$) To 0 Step -1
Debug StringField(DateiInhalt$, intI, #LF$)
Next
Grüße ... Kiffi
a²+b²=mc²
Rings
Beiträge: 977 Registriert: 29.08.2004 08:48
Beitrag
von Rings » 27.07.2005 08:31
oder FastfileText aus der PBOSL, der sicherlich schnellste weg sowas
zu bewerkstelligen mit freiem Zugriff auf alle zeilen:
Code: Alles auswählen
File.s="c:\bibeltext.txt"
Zeilenanzahl=FastOpenTextFile(file)
OpenConsole()
For ZL=Zeilenanzahl To 1 Step -1
zeileninhalt.s=FastReadLine(ZL)
PrintN(Str(ZL) +" " + Zeileninhalt)
Next
Input()
CloseConsole()
Rings hat geschrieben: ziert sich nich beim zitieren
Kiffi
Beiträge: 10719 Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
Beitrag
von Kiffi » 27.07.2005 08:48
> oder FastfileText aus der PBOSL, der sicherlich schnellste weg sowas
> zu bewerkstelligen
[klatschdiehandandiestirn] ja, so geht's ja auch
Grüße ... Kiffi
a²+b²=mc²
Icke
Beiträge: 143 Registriert: 08.09.2004 13:19
Beitrag
von Icke » 27.07.2005 21:17
Das ist die optimale Lösung, thx dafür.