PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C/C++] Mehrere Felder in eine Datei speichern und wieder einlesen?


BubbleBoy
2005-03-14, 15:12:18
Die Frage steht ja schon oben, ich müßte mehrere Felder (und ein paar einfache Variablen) in eine Datei speichern und später wieder entsprechend einlesen. Kann mir jemand weiterhelfen?

Trap
2005-03-14, 15:23:54
fstream::read()
fstream::write()
Beim erzeugen vom fstream das binary flag nicht vergessen

Einfach Pointer und Größe übergeben. Funktioniert natürlich nicht wenn die Daten selbst pointer enthalten (auch std::string oder char* sind pointer)

Asmodeus
2005-03-14, 16:04:19
Wenn Du allerdings nicht immer auf Deine gesamten Daten schreibend oder lesend zugreifen willst, sondern auch mal nur Teilbereiche der Daten in einer Datei schreiben oder später wieder lesen oder während die Datei noch geöffnet ist gewisse Daten überschreiben willst, dann solltest Du mit Positionszeigern arbeiten. Dabei ist zu beachten das es fürs Schreiben und Lesen jeweils einen eigenen Positionszeiger gibt. Die zugehörigen Positionierungsbefehle sind seekg() und seekp(). Und die Positionsabfragebefehle sind tellg() und tellp().

Wobei allgemein vielleicht noch die Frage zu klären wäre, um wie viele Daten es sich handelt, und ob Du, falls es eher eine überschaubare Menge ist, die Sachen nicht sowieso einfach als ASCII-Datei schreiben und lesen willst.

Gruss, Carsten.

BubbleBoy
2005-03-14, 19:59:19
Danke, werde es demnächst mal ausprobieren.