Persistenz-Objektweise speichern?!



  • Hallo,

    Ich hoffe das gehört thematisch in diesen Bereich.

    Ich möchte Objekte einer Klasse 'flat', welche sich in einem Vector 'flats_vc' befinden, z.b. mit einer for-Schleife in eine Datei schreiben, und es soll möglich sein, diese dann auch wieder, mit for-Schleife, auszulesen, und anschließend z.b. (über entsprechende get-Methoden) Attribute dieser Objekte mit anderen Werte zu vergleichen. - Standard halt.

    Wie kann ich diese Objekte jetzt am besten abspeichern? Gibt es, wie in Java, spezielle Streams für Objekte (Object Output/input Stream), die man dafür verwenden kann "ganze Objekte" zu speichern?

    Leider konnte ich auch in meinem Buch noch kein passendes Stichwort dazu finden. Anscheinend scheint es soetwas schönes wie in Java nicht zu geben?? 😮

    Wie speichere ich meine 'flats' am besten?

    Danke im Voraus.



  • würde den ostream-operator in deiner flat-klasse implementieren. dann kannst du einfach folgendes schreiben:

    std::ofstream datei("test.dat");
    for (unsigned int i = 0; i < mein_vektor.size(); ++i)
        datei << mein_vektor[i];
    

    umgekehrt müsstest du das dann mit ifstream machen...

    über ofstream & ifstream sollte genug in der FAQ oder im restlichen Netz stehen...



  • Ja so hatte ich mir das rein theoretisch auch ausgemalt...das klappt auch einfach so mit Objekten??
    Muss ich irgendeine Art Trennungszeichen nach jedem Objekt setzen, so dass es beim Einlesen bekannt ist, wann ein Objekt 'zuende' ist und das nächste beginnt?
    Muss ich beim Einlesen casten?


Log in to reply