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 ueberschreiben

    datei.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.


Anmelden zum Antworten