Trennzeichen für QTextStream

Alles rund um die Programmierung mit Qt
Antworten
Ozzy
Beiträge: 141
Registriert: 24. Oktober 2007 10:18

Trennzeichen für QTextStream

Beitrag von Ozzy »

Hi,

ich schreibe Daten in eine Datei, und möchte sie an andere Stelle wieder auslesen. Mein Problem ist aber, dass manchmal ein zu einlesender String auch ein Leerzeichen enthalten darf, bei mir zerstückelt er das natürlich dann in 2 Strings, und nichts geht mehr. Ich habe aber keine Möglichkeit gesehen, ihm ein Trennzeichen mitzugeben, nachdem er dann die Zeile durchsucht.
Könnt Ihr mir sagen, wie das geht?

MfG, und vielen Dank für Eure Mühen!

P.S. hier noch mal etwas Code von mir:

Code: Alles auswählen

QString commentFile = QFileDialog::getOpenFileName(this, tr("Open"), "/", tr("SPZ files (*.spz)"));

    if (!commentFile.isEmpty()) {
        QFile comment(commentFile);
        if (comment.open(QIODevice::ReadOnly | QIODevice::Text)) {
            QTextStream in(&comment);
            while (!in.atEnd()) {
                QString line = in.readLine();
					in >> Application;
					in >> Model;
            }
        }
     }
comer352l
Beiträge: 47
Registriert: 10. Juli 2007 18:10

Beitrag von comer352l »

Ich weiß zwar nicht genau, wie dein Speicherformat aussieht, aber ich würde statt dem Leerzeichen ein anderes Trennzeichen (z.B. Semikolon) verwenden, und dann die eingelesenen Zeilen mit QString::section(...) zerlegen. Das schaut dann in etwa so aus:

Code: Alles auswählen

QStringList strlist;
QString line;     // eingelesene Zeile
...
// Zeile aus Datei einlesen
...
int sepchars = line.count(';');      // Anzahl der Trennzeichen
for (int k=0; k<sepchars; k++) {
   strlist << line.section(';',k,k);
}
strlist << line.section( ';', sepchars, sepchars );    // falls letzter Datensatz in der Zeile nicht mit einem Trennzeichen abgeschlossen wird
Antworten