Einzelnen Beitrag anzeigen
Alt 18.01.2010, 21:47   #2 (permalink)
Feanor
Gast
 

Beiträge: n/a

Standard AW: [C++]Komplexe Datenstrukturen Speichern/laden

Du könntest z.B. deine Klasse mit Methoden zum serialisieren/deserialisieren erweitern, z.B.:

Code:
password & deserialize(std::istream & stream);
std::ostream & serialize();
Die Referenzen werden zwecks chaining zurückgegeben. Kannst natürlich auch nichts zurückgeben, bzw. bei der Deserialisierung einen Pointer, wenn dir das lieber ist.

Beim Serialisieren schreibste dann Variable für Variable in die Datei (bei den Datentypen aufpassen!). Am besten jeden Datentypen auf (char *) casten und mit der write/read-Methode von std::stream schreiben/lesen (nicht mit "<<" und ">>"). Als Größe "sizeof(<Datentyp>)" angeben:
Code:
out.write((char*)&password1, sizeof(password1));
Beim Deserialisieren das ganze Spiel anders herum (new password().deserialize(stream)).
Alternativ bietet boost auch Methoden zur Serialisierung.

Das Deserialisieren kannste dann vor dem Schließen des Programms machen, das Serialisieren beim Starten des Programms.

Falls ich das Ganze etwas ausführlicher schildern soll oder ich etwas näher erklären soll, gib einfach Bescheid.
  Mit Zitat antworten
Für diesen Beitrag bedankt sich:
Soman_X (19.01.2010)