![]() |
Zeichen in einem Memo ersetzen
hallo!
ich möchte gerne in einem memo-feld die deutschen sonderzeichen durch html-konforme zeichen ersetzen lassen und benutze folgende prozedur:
Delphi-Quellcode:
allerdings tut sich da nichts... habe ich noch irgendwas vergessen?
procedure TForm1.Button1Click(Sender: TObject);
begin StringReplace(Memo1.Text,'ü','ü',[rfReplaceAll]) end; grüße |
Re: Zeichen in einem Memo ersetzen
Ja, Stringreplace tut das nicht einfach so, sondern du musst das Ergebnis der Funktion auch weiterverwerten.
Etwa so:
Delphi-Quellcode:
var blah: string;
blah := "hallo"; blah := Stringreplace(blah,'a','ß',[rfReplaceAll]); //blah hat nun den Wert "hßllo" |
Re: Zeichen in einem Memo ersetzen
Und in Deinem konkreten Fall:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin Memo1.Text := StringReplace(Memo1.Text,'ü','ü',[rfReplaceAll]) end; |
Re: Zeichen in einem Memo ersetzen
alles klar, vielen dank!
|
Re: Zeichen in einem Memo ersetzen
Um generell was dazu zu sagen:
Ich würde mit einer lokalen Variable arbeiten, da der ständige Zugriff TMemo.Text wohl bei mehreren Durchläufen zeitraubend sein dürfte. Bei ä, ö, ü und vielleicht noch ß wird das nicht so ins Gewicht fallen, aber es gibt sicher Anwendungsfälle, wo mehr Buchstaben(-ketten) geändert werden müssen. Etwa so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var dertext: string; begin dertext := Memo1.Text; dertext := StringReplace(dertext,'ä','ä',[rfReplaceAll]); dertext := StringReplace(dertext,'ö','ö',[rfReplaceAll]); dertext := StringReplace(dertext,'ü','ü',[rfReplaceAll]); dertext := StringReplace(dertext,'ß','&szuml;',[rfReplaceAll]); dertext := StringReplace(dertext,'udn','und',[rfReplaceAll]); Memo1.Text := dertext; end; |
Re: Zeichen in einem Memo ersetzen
Hi,
wenn hier schon die Performance angesprochen wird, dann sollte gesagt werden, dass StringReplace eine relativ langsame Funktion ist, weshalb ein mehrmaliger Aufruf nicht sonderlich gut ist. Schneller geht es mit diesen Funktionen aus der Code-Library: ![]() ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz