Mehrere Schlüsselwörter in einer Datei suchen/ersetzen

d0d4

Grünschnabel
Hallo,

ich möchte mehrere Schlüsselwörter in einer Datei ersetzen. Das ganze habe ich mit der MFC Klasse 'CStdioFile' versucht, bekomme es jedoch nicht gebacken. (MFC-Konsolenanwendung)


Meine Vorgehensweise war.
1.Datei zum einlesen öffnen, eine Zeile auslesen und in einen String speichern(eventuell Schlüsselwort ersetzen)
2.Datei schließen
3.Gleiche Datei zum schreiben öffnen, Zeile hineinschreiben
4.Datei schließen
Dann wieder nach 1.

Da ich keine Zeile direkt anspringen kann, muss ich die entsprechende Zeile über Schleifen auswählen und jedes mal die komplette Datei durchackern.

Das ganze hatte dann so viele Fehler, dass ich nicht mehr weiter gekommen bin.

Nun meine Fragen ...

Gibt es eine einfache Methode mehrere Schlüsselwörter in einer Datei zu ersetzen.
Ein Problem ist natürlich, dass ich die Datei nicht zum lesen und schreiben gleichzeitig öffnen kann.
Ist es möglich die komplette Textdatei zu laden und dann nach die entsprechenden Strings suchen/ersetzen und den kompletten Text zurück zu schreiben.


Danke
d0d4
 
Hallo,

du musst auf jeden Fall die Datei erst komplett einlesen, ändern und dann ersetzen.

Folgende Vorgehensweise wäre denkbar:
1. Datei zum Lesen öffnen (CStdioFile)
2. Datei zeilenweise einlesen, ggf. Schlüsselworte ersetzen und Zeile in Array Speichern (z.B. in einem CStringArray)
2. Datei schließen
3. Datei zum Schreiben öffen
4. Schleife über alle Array-Elemente und zeilenweise in die Datei schreiben
5. Datei schließen

Gruß
MCoder
 
Hallo MCoder,

Vielen Danke für deine Antwort. Manchmal hat man ein Brett vor dem Kopf.
Ich habe es genau so gemacht, wie du es mir vorgeschlagen hast. Die Lösung mittels 'CStringArray' ist super einfach. DANKE

mfg
d0d4
 
Zurück