Datei kürzen mit fopen(filename,"r+b");



  • Hallo,
    Ich möchte eine Datei im Binärmode einlesen und anschliessend überschreiben.
    Klappt mit fopen(filename,"r+b") wunderbar, nur möcht ich die Datei auch kürzen.
    Also Datei mit z.B. 5 kB
    -öffen,
    -komplett lesen und auswerten
    -mit 2 kB von vorne neu beschreiben
    -schliessen
    Dummerweise wird die Datei dabei nicht kleiner, sondern
    bleibt 5kB gross, d.h. ich hab danach in diesem Fall 3kB Restmüll in der Datei.
    Frage:
    Wie schreib ich ein EOF?
    Geht das kürzen im binärmode überhaupt ohne zu schliessen und neu zu öffnen?
    Gruß
    MP



  • neue datei erstellen, 2kb reinschreiben. alte löschen. umbenennen. fettich.



  • - nur kürzen, ohne neuschreiben:

    _chsize( int handle, long size );
    

    an die ansi gurus: ja plattformabhängig.



  • vielen Dank für die schnelle Antwort
    _chsize ist ein guter Tip, merk ich mir,
    aber ich hab festgestellt das ich mit
    f=freopen(filename,"wb",f);
    für diesen Fall auch glücklich werd.
    Gruß
    MP


Anmelden zum Antworten