So überschreiben Sie nur einen Teil einer Datei in C ++

7

Ich möchte mit c ++ Änderungen in der Mitte einer Textdatei vornehmen, ohne den Rest der Datei zu verändern. Wie kann ich das tun?

    
neuromancer 27.03.2010, 17:49
quelle

3 Antworten

8

Wenn die Ersatzzeichenfolge dieselbe Länge hat, können Sie die Änderung vornehmen. Wenn der Ersetzungsstring kürzer ist, können Sie ihn möglicherweise mit Leerzeichen der Breite null oder ähnlichem auffüllen, um die gleiche Anzahl an Bytes zu erhalten, und die Änderung an Ort und Stelle vornehmen. Wenn die Ersatzzeichenfolge länger ist, ist einfach nicht genügend Platz vorhanden, es sei denn, Sie verschieben zuerst alle verbleibenden Daten.

    
Ben Voigt 27.03.2010, 18:08
quelle
12

Verwenden Sie std :: fstream .

Der einfachere std :: ofstream würde nicht funktionieren. Es würde Ihre Datei abschneiden (es sei denn, Sie verwenden die Option std :: ios_base :: app, was sowieso nicht gewünscht ist).

%Vor%     
ZunTzu 18.01.2012 07:56
quelle
0

Öffnen Sie im Allgemeinen die Datei zum Lesen im Textmodus, lesen Sie Zeile für Zeile bis zu dem Ort, den Sie ändern möchten, und lesen Sie die Zeilen in eine zweite Textdatei, die Sie zum Schreiben geöffnet haben. Schreiben Sie an der Stelle, an der Änderungen vorgenommen werden sollen, die neuen Daten in die zweite Datei. Fahren Sie dann mit dem Lesen / Schreiben der Datei bis zum Ende fort.

    
ysap 27.03.2010 18:05
quelle

Tags und Links