Auslesen QTextStream -> QStringList: while überspringt We
Verfasst: 30. August 2010 17:28
Hallo an alle,
ich habe folgendes Problem: Ich will aus einer Datei den Header auslesen (also alles bis zum String "%%"). Diese Datei ist bereits offen und in einem QTextEdit verfügbar. Daher benutze ich zum Auslesen ein QTextStream mit einem String als "Trägermasse". Um jetzt weitere Aktionen darauf ausführen zu können (ich muss Werte der Form "Eigenschaft: Wert;" parsen) will ich die einzelnen Zeilen in eine QStringList überführen, was mittels einer while-Schleife passiert:
Diese While-Schleife bereitet mir nun Bauchschmerzen: nur jede zweite Zeile aus der Datei wird in die StringList übernommen; wo der Fehler allerdings liegt, kann ich nicht sagen.
Gibt es vielleicht auch andere Weisen, das oben beschriebene Problem anzugehen bzw. hat jemand vielleicht eine Idee, wo der Fehler liegen könnte?
Liebe Grüße und schon mal vielen Dank!
David
EDIT: Wäre vielleicht noch vonnutzen: Ich verwende QT in Version 4.6.3 auf einem Mac mit Snow Leopard. IDE ist QT Creator 2
ich habe folgendes Problem: Ich will aus einer Datei den Header auslesen (also alles bis zum String "%%"). Diese Datei ist bereits offen und in einem QTextEdit verfügbar. Daher benutze ich zum Auslesen ein QTextStream mit einem String als "Trägermasse". Um jetzt weitere Aktionen darauf ausführen zu können (ich muss Werte der Form "Eigenschaft: Wert;" parsen) will ich die einzelnen Zeilen in eine QStringList überführen, was mittels einer while-Schleife passiert:
Code: Alles auswählen
void NaProg::gregorio_extract()
{
QString file_content = NULL;
QTextStream gabc_content(&file_content);
QStringList gregorio_header;
gabc_content << activeMdiChild()->toPlainText();
int info_count = 0;
while (!gabc_content.atEnd())
{
if (gabc_content.readLine() == "%%") break;
gregorio_header << gabc_content.readLine();
QMessageBox::information(this,tr("Notatio Antiqua Debugging"),
tr("Inhalt der Variable, Feld %1: \n %2")
.arg(info_count)
.arg(gregorio_header[info_count]));
if (gregorio_header[info_count] == "") break;
++info_count;
}
}
Gibt es vielleicht auch andere Weisen, das oben beschriebene Problem anzugehen bzw. hat jemand vielleicht eine Idee, wo der Fehler liegen könnte?
Liebe Grüße und schon mal vielen Dank!
David
EDIT: Wäre vielleicht noch vonnutzen: Ich verwende QT in Version 4.6.3 auf einem Mac mit Snow Leopard. IDE ist QT Creator 2