Seite 1 von 1
QFile - QTextStream - letzte oder bestimmte Zeile auslesen
Verfasst: 13. Januar 2010 20:01
von spawnb
Hallo,
gibt es eine Möglichkeit aus einer Text-Datei nur eine bestimmte Zeile, bzw. die letzte Zeile auszulesen?
Begründung:
Ich muss Sekündlich eine Log-Datei auslesen, welche relative groß werden kann. Dabei interessiert mich eigentlich nur die zu letzt geschriebene Zeile, also die Letzte.
Verfasst: 13. Januar 2010 20:14
von Christian81
Nein, sows geht nicht. Da man aber die Dateigröße hat kann man ja recht weit hinten positionieren.
Verfasst: 13. Januar 2010 20:24
von spawnb
was meinst du mit positionieren, pls kleines Example..

Verfasst: 13. Januar 2010 20:27
von Christian81
Verfasst: 13. Januar 2010 20:40
von spawnb
gibt es eine möglichkeit mit QFile die datei "unlocked" zu öffnen, dann könnte ich sie beim starten einlesen, und mit einem SystemFileWatcher beobachten, und bei modifikation, einfach die nächste zeile auslesen.
Leider lockt QFile trotzt Qt::ReadOnly, die Datei, wenn ich sie z.B. mit dem editor öffne kann ich nicht speichern.
Verfasst: 13. Januar 2010 21:10
von spawnb
Habs gefunden, klappt so, ohne die ganze Log wieder einzulesen.
Danke für die nette Hilfe.
Verfasst: 14. Januar 2010 08:00
von AuE
na und wie hast es gelöst???
Verfasst: 14. Januar 2010 09:59
von spawnb
wie oben geschrieben,
- Datei mit QFile öffnen, permission setzten
- TextStream auf die File, bis zum Ende lesen (stream->AtEnd())
- QFile und Stream offen lassen.
- QFileSystemWatcher auf die Datei und Changed-Signal connecten.
- emitet das signal, lese ich einfach mit file->readline, weiter bis ich wieder ans Ende (stream->AtEnd()) gelange