AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Zeichen in einem Memo ersetzen

Ein Thema von Schmile · begonnen am 3. Okt 2007 · letzter Beitrag vom 4. Okt 2007
Antwort Antwort
Schmile

Registriert seit: 3. Okt 2007
20 Beiträge
 
#1

Zeichen in einem Memo ersetzen

  Alt 3. Okt 2007, 21:40
hallo!

ich möchte gerne in einem memo-feld die deutschen sonderzeichen durch html-konforme zeichen ersetzen lassen und benutze folgende prozedur:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
StringReplace(Memo1.Text,'ü','ü',[rfReplaceAll])
end;
allerdings tut sich da nichts... habe ich noch irgendwas vergessen?

grüße
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Zeichen in einem Memo ersetzen

  Alt 3. Okt 2007, 21:43
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"
Julian J. Pracht
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Zeichen in einem Memo ersetzen

  Alt 3. Okt 2007, 21:47
Und in Deinem konkreten Fall:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Text := StringReplace(Memo1.Text,'ü','ü',[rfReplaceAll])
end;
  Mit Zitat antworten Zitat
Schmile

Registriert seit: 3. Okt 2007
20 Beiträge
 
#4

Re: Zeichen in einem Memo ersetzen

  Alt 3. Okt 2007, 21:56
alles klar, vielen dank!
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Zeichen in einem Memo ersetzen

  Alt 4. Okt 2007, 02:03
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;
Julian J. Pracht
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Zeichen in einem Memo ersetzen

  Alt 4. Okt 2007, 06:33
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:

Mehrere Strings auf einmal ersetzen
Mehrere Strings auf einmal ersetzen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz