QdataStream

Alles rund um die Programmierung mit Qt
Antworten
mauro100
Beiträge: 13
Registriert: 19. November 2013 13:09

QdataStream

Beitrag 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.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: QdataStream

Beitrag 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;
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
mauro100
Beiträge: 13
Registriert: 19. November 2013 13:09

Re: QdataStream

Beitrag 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 ?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: QdataStream

Beitrag von Christian81 »

Die Datei ist binär codiert - da steht nicht einfach der Text drin... siehe Doku.
Suchst Du evtl. QTextStream?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten