[O]ftream und anhängen bzw. überschreiben von Binär Dateien



  • Hallo,

    Ich habe in verschiedenen Beiträgen gelesen, das man Teile von Binärdateien überschreiben kann, wenn man beim Öffnen bereits ios::ate mitangibt, und dann an die jeweiligen stelle springt (Schreibzeiger) [seekp(...)] - jedoch habe ich das jetzt schon des öffteren ausprobiert, und beim Debuggen ist mir aufgefallen, das bereits beim Aufruf der folgenden Zeile die Dateigröße nur noch 0 Byte beträgt (also der Bisherige Inhalt verworfen wird)

    ofstream myfile("MeineDatei.dat",ios::binary|[b]ios::ate[/b]|ios::binary);
    

    mach ich hier irgend etwas falsch??
    oder geht es nur mit ios::app (nur am Dateiende ist weiterschreiben möglich...)
    kann man irgendwie anders bestimmte Bereiche aus Binärdateien "überschreiben"´, bzw an bestimmten Bereichen neue Datan anfügen??

    MFG (Nobber)



  • wieso gibst du ios::binary 2 mal an ?

    Devil



  • hab mich eben verschrieben...
    heisst natürlich nur 1. mal ios::binary

    MFG Nobber



  • Spontaner Einfall:
    vielleicht gehts, wenn du als Modus "Lesen UND Schreiben" angibst?

    Grüße Rapha



  • Es ist wahrhaftig so, das ich das File sowohl lesend, sowie auch schreibend öfnnen muß, dann klappt es ...

    hier der Code, der Funktioniert:

    int i_test=0;
    fstream myFile("c:\\test_cximage.dat",ios::in|ios::out|ios::ate|ios::binary); 
    myFile.seekp(3); 
    myFile.write(reinterpret_cast<char*>(&i_test),sizeof(i_test));
    myFile.close();
    

    Danke ....


Anmelden zum Antworten