Hallo, ich habe bereits die Suchfunktion benutzt, habe leider keinen passenden (für mich verständlichen!) Beitrag gefunden.
Ich bin Programmieranfänger und habe leider keine Vor/Grundkenntnisse etc.
Mein Problem ist folgendes, ich möchte eine variierende Log-Textdatei einlesen
und die letzten (ungefähr) 20 Zeilen in einen string speichern den ich dann ausgeben kann.
Die Grösse sowie der Inhalt der Datei ändert sich laufend.
Wie gehe ich da nun vor?
Wenn ich die Datei mit ReadFile() einlese, wie kann ich die letzten 20 String-Zeilen hier "herauslösen"?
Oder muss ich da mit einem Stringfield arbeiten?
mfg, Alex
Wie die letzten Zeilen einer Textdatei in einen String lesen
-
- Beiträge: 5
- Registriert: 06.01.2011 20:06
- Computerausstattung: Purebasic 4.51 64 bit
Windows 7 64bit Prof. (programmieren mit PB)
Windows XP (programmieren mit PB)
Debian Lenny
CPU:Intel C2D E6600, MB: ASROCK 4core FullHD 1333,RAM: 6GB Geil
DDR2 800, HD(OS) OCZ Agility 2 E SATA II 2.5 SSD 60GB
Wie die letzten Zeilen einer Textdatei in einen String lesen
!!ROOKIE!! Win7 64 PB 4.51
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Wie die letzten Zeilen einer Textdatei in einen String l
Da gibt es viele Möglichkeiten, hier ein Beispiel:
Oder mit Stringfield aus dem Speicher (evtl. schneller)
Code: Alles auswählen
EnableExplicit
NewList Last20.s()
Define FF = ReadFile(#PB_Any, #PB_Compiler_Home + "SDK\Readme.txt")
If FF
While Not Eof(FF)
AddElement(Last20())
Last20() = ReadString(FF)
Wend
CloseFile(FF)
EndIf
Define Count = ListSize(Last20())
Define index = 1
SelectElement(Last20(), count - 21)
While NextElement(Last20())
Debug Str(index) + " " + Last20()
index + 1
Wend
Code: Alles auswählen
EnableExplicit
Define FF = ReadFile(#PB_Any, #PB_Compiler_Home + "SDK\Readme.txt")
If FF
Define Size = Lof(FF)
Define *mem = AllocateMemory(Size)
If *mem
ReadData(FF, *mem, Size)
EndIf
CloseFile(FF)
EndIf
Define.s Text = PeekS(*mem)
FreeMemory(*mem)
RemoveString(Text, #CR$)
Define Count = CountString(Text, #LF$) + 1
Define i
If Count > 20
For i = Count - 20 To Count
Debug StringField(Text, i, #LF$)
Next
Else
For I = 1 To Count
Debug StringField(Text, i, #LF$)
Next
EndIf
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 5
- Registriert: 06.01.2011 20:06
- Computerausstattung: Purebasic 4.51 64 bit
Windows 7 64bit Prof. (programmieren mit PB)
Windows XP (programmieren mit PB)
Debian Lenny
CPU:Intel C2D E6600, MB: ASROCK 4core FullHD 1333,RAM: 6GB Geil
DDR2 800, HD(OS) OCZ Agility 2 E SATA II 2.5 SSD 60GB
Re: Wie die letzten Zeilen einer Textdatei in einen String l
Vielen Dank, genau das was ich gesucht habe, jetzt fange ich an zu verstehen wie ich da vorgehen muss.
!!ROOKIE!! Win7 64 PB 4.51