Hallo,
da ich meine Routinen schon lange mal aufbohren wollte, hab ich Deine Frage zum Anlass genommen, mein StringReplace zu überarbeiten.
Die Methode findest Du im Anhang.
Ein möglicher Aufruf wäre:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
Old, New: array of AnsiString;
S: AnsiString;
begin
SetLength(Old, 7);
SetLength(New, 7);
Old[0] := 'ä';
Old[1] := 'ö';
Old[2] := 'ü';
Old[3] := 'Ä';
Old[4] := 'Ö';
Old[5] := 'Ü';
Old[6] := 'ß';
New[0] := 'ae';
New[1] := 'oe';
New[2] := 'ue';
New[3] := 'Ae';
New[4] := 'Oe';
New[5] := 'Ue';
New[6] := 'ss';
S := StringReplaceMultiple(Memo1.Text, Old, New);
Memo1.Text := S;
end;
Das Problem ist aber natürlich, dass Du zwei 700 MB große Strings im Speicher liegen hast. Wenn das kein Problem ist, probier das hier mal aus.
Ich hab das übrigens schnell mal in einer Viertelstunde hingeschmiert, scheint aber zu funktionieren. :wink:
Gruß
xaromz
//Edit: Anhang aktualisiert