Auslesen von Dateien mit Zeichenkettenänderung

Moin Leute

Ich würd’ gern in Borland - C ein Programm schreiben, welches
Zeichenketten in einer Datei auslesen und diese gegebenenfalls austauscht.
Die Datei sei zum Beispiel „Brief.txt“
In dem Brief sollen nun alle „Ö“ in „OE“ geändert werden.

Befehlszeile stelle ich mit so vor:

C:\Programmname Brief.txt {Ö} [OE]

Ein bischen C-Erfahrung hab’ ich schon - aber mir fehlt der Ansatz - kann mir da wer weiterhelfen?

Gruß Lowrider

Hallo Lowrider,

Ansatz:
Eingabe-Datei öffnen.
Ausgabe-Datei erstellen/Öffnen.
Zeichen einlesen
Vergleichen
Entweder altes Zeiche in Ausgabe-Datei schreiben oder Ersatzzeichen.
Nächstes Zeichen lesen Until EOF

MfG Peter(TOO)

Ne Nachfrage
Hallo Lowrider

Befehlszeile stelle ich mit so vor:

C:\Programmname Brief.txt {Ö} [OE]

Hat das erste Zeichen (in deinem Beispiel Ö)immer nur ein Zeichen?
Dann ist Peters Ansatz OK.
Oder ist es ein String mit Länge >1 ?
Dann musst du ein bischen modifizieren.
Ich hab so was ähnliches schon mal in Pascal programmiert, leider schon ne Weile her.

Das eingelesene Zeiche wird erstmal an einen Pufferstring angehängt, sowie das erste Zeichen gelöscht, damit er immer die gleiche Länge hat.
Dieser Pufferstring wir dann mit dem Eingabestring verglichen und bei Übereinstimmung der Ersatzstring geschrieben.

Das erstmal in aller Kürze.

Für weitere Fragen stehe ich dir gern zur Verfügung

Viele Grüsse
Ratz

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Das eingelesene Zeiche wird erstmal an einen Pufferstring
angehängt, sowie das erste Zeichen gelöscht, damit er immer
die gleiche Länge hat.
Dieser Pufferstring wir dann mit dem Eingabestring verglichen
und bei Übereinstimmung der Ersatzstring geschrieben.

Hi Ratz!

Das erscheint mir doch etwas umständlich. Warum nicht das eingelesene Zeichen mit dem ersten Zeichen des zu ersetzenden Strings vergleichen. Falls gleich -> nächstes Zeichen einlesen und weiter mit dem Vergleich beim jeweils zweiten Zeichen usw. Wenn das Ende des zu ersetzenden Strings erreicht ist und kein Unterschied gefunden wurde den Ersatzstring schreiben. Ansonsten beim ersten unterschiedlichen Zeichen den Buffer rausschreiebn und leeren.
Das sollte auch weniger vergleiche (auf den einzelnen Character bezogen) benötigen als dein Vorschlag.

Gruß,
TheBeast

Hi

Erstmal danke für die Antworten
Die zu ersetzenden Zeicen können auch Zeichenketten
also ganze Wörte) sein.

Gruß Lowrider

Auch gut
Hallo Beast

Ja, auch ne gute Möglichkeit.
Wie gesagt is paar Jahre her, dass ich das programmiert habe.
Damals auch noch mit der Erweiterung, dass mehrere Strings gleichzeitig ersetzt werden.
Z.B. in einem Durchlauf ä -> ae, ö -> oe usw.

Und wie heisstes doch: Never touch a running System :wink:

Viele Grüsse und schönes Wochenende

Ratz