Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Umlaute in String ersetzen (https://www.delphipraxis.net/76809-umlaute-string-ersetzen.html)

Hawkeye219 12. Sep 2006 22:18

Re: Umlaute in String ersetzen
 
Hallo NamenLozer,

abgesehen von dem fehlenden Buchstaben ("AnzUmlaue") und der Vertauschung ("Ue" <-> ""Oe") enthält dein Algorithmus noch einen logischen Fehler: Buchstaben, die nicht im Array Umlaute enthalten sind, werden 7 mal in den Ergebnisstring gepackt.

Gruß Hawkeye

SirThornberry 12. Sep 2006 23:05

Re: Umlaute in String ersetzen
 
Es ist recht unperfoment einen String immer wieder zu verlängern in dem man was anhängt. Sinvoller ist es den String anfangs auf die maximale Länge zu setzen (also doppelt so lang wie den originalen in diesem fall) und am ende den String mit SetLength wieder zu kürzen.

ehoffman 13. Sep 2006 00:54

Re: Umlaute in String ersetzen
 
Hallo,

in erster Linie würde ich mich fragen in welcher Sprache wird der Benutzer die Texte eingeben. Daraus ließe sich dann ableiten welche Sonderzeichen (= Zeichen oberhalb von US-ASCII) zu erwarten sind. Dementsprechend wird dann eine umkodierung des Zeichensatzes in den von dir verwendeten Zeichensatz vorgenommen (hier tatsächlich US-ASCII -- was für den recoder bedeutet alle Umlaute/"Sonderzeichen" durch die entsprechenden phonetischen Äquivalente zu ersetzen). Klingt kompliziert - ist es auch, funktioniert aber. Ideal wäre das Ganze nach UTF8 zu kodieren, aber damit steht selbst Windows XP noch ein wenig auf Kriegsfuss... Insofern bleibt alles was nicht "erwartet" wird (= zu erwartende Standardsprache des/der Anwender/s) als Sonderfall aussen vor.

Ich empfehle: http://www.gnu.org/software/recode/recode.html

In dem Quellcode findet man alles was zu diesem Thema programmiert werden könnte (Sprache C), allerdings nur für OpenSource Projekte...

mfg
Eike


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:43 Uhr.
Seite 2 von 2     12   

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