mit fstream in datei schreiben
-
Hi,
wie der Titel sagt habe ich Probleme beim schreiben in eine Datei;
Ich moechte mehrere Datensaetze in eine Datei schreiben, und spaeter einiege dieser Datensaetze aendern.
Ich fange an mit :fstream datei;
datei.open("c:\\ext.txt",ios::out|ios::binary);
datei.write((char*)&Schreibe1,sizeof(MeinStruct));
.
.
.
datei.close();das klappt noch ... wenn ich nun die inhalte der datei lesen will
datei.open("c:\\ext.txt",ios::in|ios::binary);
datei.read((char*)&Lese1,sizeof(MeinStruct));
.
.
.
datei.close();das klappt auch noch.. wenn ich die Datensaetze nicht alle nacheinander sondern einen spezifischen satz lesen will mit
datei.seekg(sizeof(MeinStruct)*NUMMER DES DATENSATZ);
geht das auch... aber wenn ich nun versuche an eine bestimmte Stelle in dieser Datei zu schreiben sprich den 2. Datensatz zu ueberschreibendatei.open("c:\\ext.txt",ios::out|ios::binary);
datei.seekp(sizeof(MeinStruct));
datei.write((char*)&Schreibe1,sizeof(MeinStruct));
datei.close();das Problem das sich daraus ergibt ist das mit dem Befehl datei.seekp();
der cursor zwar an die stelle des 2. datensatzes gesetzt wird aber alle datensaetze davor geloescht werden??Was mache ich falsch?
-
Muss das nicht
datei.seekp(NummerDesDatensatzes * sizeof(MeinStruct));
sen?
-
Dieser Thread wurde von Moderator/in junix aus dem Forum Borland C++ Builder (VCL/CLX) in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.