 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
christoph.borchers@volksw Guest
|
Posted: Wed Jun 15, 2005 8:29 am Post subject: Vector in binäre Datei speichern |
|
|
Hallo Leute,
ich habe in meinem Porgramm einen Vector von Klassen. Also:
vector<KlasseXYZ> bla;
Nun möchte ich den kompletten Inhalt des Vectors in eine binäre Datei
schreiben, um ihn beim nächsten Programmstart einfach wieder einlesen
zu können.
Ich dachte an so etwas wie:
fstream datei("blub.dat");
datei << bla;
Funktioniert ja nun leider nicht. Hat vielleicht jemand einen
Vorschlag, wie sich so etwas lösen ließe?
Vielen Dank schon mal!
Jarod
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Falk Tannhäuser Guest
|
Posted: Thu Jun 16, 2005 9:40 am Post subject: Re: Vector in binäre Datei speichern |
|
|
[email]christoph.borchers (AT) volkswagen (DOT) de[/email] wrote:
| Quote: | vector<KlasseXYZ> bla;
Nun möchte ich den kompletten Inhalt des Vectors in eine binäre Datei
schreiben, um ihn beim nächsten Programmstart einfach wieder einlesen
zu können.
Ich dachte an so etwas wie:
fstream datei("blub.dat");
datei << bla;
|
Was hast du für Daten in 'KlasseXYZ'?
Solange, wie es sich um einfache Datentypen handelt (char, int, float,
double, ..., aber keine Zeiger und auch kein std::string/vector/list o.ä.)
und du damit leben kannst, dass die gespeicherte Datei nicht plattform-
übergreifend portabel ist (Endianness, Größe in Bytes der Daten-
repräsentationen, unterschiedliches Padding in Strukturen u.v.a.m.
variieren zwischen verschiedenen Maschinen, Compilern, Compilerversionen
und sogar abhängig von Compileroptionen!) sowie keine Basisklassen und
virtuelle Funktionen hast, tut's ganz einfach
std::ofstream datei("blub.dat", std::ios::binary);
datei.write(reinterpret_cast
sizeof(KlasseXYZ) * bla.size());
Ansonsten kompliziert sich alles...
MfG
Falk
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Karl Heinz Buchegger Guest
|
Posted: Thu Jun 16, 2005 9:45 am Post subject: Re: Vector in binäre Datei speichern |
|
|
[email]christoph.borchers (AT) volkswagen (DOT) de[/email] wrote:
| Quote: |
Hallo Leute,
ich habe in meinem Porgramm einen Vector von Klassen. Also:
vector<KlasseXYZ> bla;
Nun möchte ich den kompletten Inhalt des Vectors in eine binäre Datei
schreiben, um ihn beim nächsten Programmstart einfach wieder einlesen
zu können.
Ich dachte an so etwas wie:
fstream datei("blub.dat");
datei << bla;
Funktioniert ja nun leider nicht. Hat vielleicht jemand einen
Vorschlag, wie sich so etwas lösen ließe?
|
Was spricht gegen eine Schleife?
BTW: Im 'Subject' sagst du, du moechtest binaer schreiben. Dazu brauchst
du aber die Funktionen read() und write() und nicht die formatierenden
Stream Operatoren << und >>
--
Karl Heinz Buchegger
[email]kbuchegg (AT) gascad (DOT) at[/email]
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
jarod Guest
|
Posted: Thu Jun 16, 2005 10:51 am Post subject: Re: Vector in binäre Datei speichern |
|
|
Danke erstmal!
Ich denke, dann wird sich alles komplizieren, da sich leider auch
Vektoren und fast nur Strings in der Klasse befinden.
Gruß!
jarod
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Christoph Rabel Guest
|
Posted: Thu Jun 16, 2005 4:24 pm Post subject: Re: Vector in binäre Datei speichern |
|
|
[email]christoph.borchers (AT) volkswagen (DOT) de[/email] wrote:
| Quote: |
ich habe in meinem Porgramm einen Vector von Klassen. Also:
vector<KlasseXYZ> bla;
Nun möchte ich den kompletten Inhalt des Vectors in eine binäre Datei
schreiben, um ihn beim nächsten Programmstart einfach wieder einlesen
zu können.
Ich dachte an so etwas wie:
fstream datei("blub.dat");
datei << bla;
Funktioniert ja nun leider nicht. Hat vielleicht jemand einen
Vorschlag, wie sich so etwas lösen ließe?
|
boost::serialisation?
http://boost.org/libs/serialization/doc/index.html
mfg
Christoph
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|