Qt: bestimmte Zeile ausle
-
QMessageBox b; QFile file("test.txt"); file.open(QIODevice::ReadOnly); char buffer[1024]; qint64 len; while(len = file.readLine(buffer, sizeof(buffer)) != -1) { b.setText(buffer); b.exec(); } file.close();
Hallo,
Das ist mein Quelltext. Ich will eine funktion schreiben, die mir den text in einer bestimmten Zeile der Datei zurückgibt. In der schleife funktioniert das wie geölt, aber ich kann z.B. nicht einfach zeile 2, 6, 7, ,...n ausgeben lassen, ohne vorher die ganze while-schleife durchlaufen zu lassen.Wie kann ich das problem lösen ?
Danke,
Lusches
-
lies dir QFile durch, da steht was zum auslesen mit QTextStream damit sparst du das charrumgebuffere. Du kannst ohne spezielles Wissen über den Aufbau der Datei nicht "nur" Zeile
n
auslesen, du musst alle Zeilen bis einschließlich n lesen. (anders wenn du zb weisst das jede Dateizeile immer X Zeichen lang ist, dann könntest du was mit seek basteln ...). Lies das ganze KOMPLETT Zeilenweise in eine QStringList und merk dir die als member, dann kannst du bei bedarf darauf zugreifen. Es ist recht inperformant, eine Zeile zu lesen, auszugeben, wieder eine zu lesen, auszugeben usw. Lieber alles lesen, dass ausgeben was du willst
-
Danke für den Tipp.
Ich werde es dann so umsetzenGruß,
Lusches