Seite 1 von 1

QdataStream

Verfasst: 8. Dezember 2013 19:18
von mauro100
Guten Abend,

Ich komme leider bei einem kleinen Problem nicht mehr weiter.
Ich möchte eine erstellte QList<Zimmer> von meiner Klasse Zimmer in einer Datei speichern.
habe versucht das über QDataStream zu lösen.

Code: Alles auswählen

QDataStream &operator<<(QDataStream& stream, const Zimmer&){
    stream<< Zimmer.Position << Zimmer.Zimmername << Zimmer.Quadratmeter;
    return stream;
}

Code: Alles auswählen

QFile myfile("Daten.txt");
    if(!myfile.open(QFile::WriteOnly | QFile::Text)){
        qDebug() << "could not open file";
        return;
    }

    QDataStream stream(&myfile);
    stream<<  Name von meinerListe????? 

    myfile.flush();
    myfile.close();
}
Habe mir meinen bisherigen Code versucht durch andere Beispiele aus dem Internet umzusetzen allerdings ohne Erfolg
Bin auch totaler QT und C++ Anfänger.
Wäre schön wenn mir einer helfen könnte.
Vielen Dank im Vorraus.

Re: QdataStream

Verfasst: 8. Dezember 2013 20:38
von Christian81
Über jedes einzelne Element der Liste iterieren und ausgeben. Davor im Datastream am besten noch die Anzahl speichern damit Du beim auslesen weißt wie viel Du auslesen musst.

Code: Alles auswählen

QList<Zimmer> zimmerList;
ds << zimmerList.size();
Q_FOREACH(const Zimmer &z, zimmerList)
  ds << z;

Re: QdataStream

Verfasst: 8. Dezember 2013 22:08
von mauro100
Vielen Dank schonmal es funktioniert soweit, allerdings werden in der Datei statt den den gewünschten Daten für Zimmername und Quadratmeteranzahl
nur Sonderzeichen angezeigt.

Vllt liegt das daran wie ich die Daten in die Liste einlese habe das ganze so gelöst:

Code: Alles auswählen

MeineListe.append(Zimmer(k,zimmer,qm));

kann man das so machen ?

Re: QdataStream

Verfasst: 8. Dezember 2013 22:38
von Christian81
Die Datei ist binär codiert - da steht nicht einfach der Text drin... siehe Doku.
Suchst Du evtl. QTextStream?