Einzelnen Beitrag anzeigen

xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#4

Re: Stringreplace einmal auslösen für alle Umlaute?

  Alt 3. Mär 2006, 13:41
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
Angehängte Dateien
Dateityp: pas stringreplacemultiple_534.pas (4,4 KB, 44x aufgerufen)
  Mit Zitat antworten Zitat