C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Vector in binäre Datei speichern

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German)
View previous topic :: View next topic  
Author Message
christoph.borchers@volksw
Guest





PostPosted: Wed Jun 15, 2005 8:29 am    Post subject: Vector in binäre Datei speichern Reply with 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?


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





PostPosted: Thu Jun 16, 2005 9:40 am    Post subject: Re: Vector in binäre Datei speichern Reply with quote



[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





PostPosted: Thu Jun 16, 2005 9:45 am    Post subject: Re: Vector in binäre Datei speichern Reply with quote



[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





PostPosted: Thu Jun 16, 2005 10:51 am    Post subject: Re: Vector in binäre Datei speichern Reply with quote

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





PostPosted: Thu Jun 16, 2005 4:24 pm    Post subject: Re: Vector in binäre Datei speichern Reply with quote

[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
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German) All times are GMT
Page 1 of 1

 
Jump to:  
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


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.