Umlaute ersetzen
Moderatoren: Raffenberg, A. Schüller, Pfotenhauer
Umlaute ersetzen
Guten Morgen,
gibt es eine Funktion, mit der man in einem Textstring Umlaute umsetzen kann?
Viele Grüße
W.-D. Peter
gibt es eine Funktion, mit der man in einem Textstring Umlaute umsetzen kann?
Viele Grüße
W.-D. Peter
- Falko Müller
- Fachberater*in
- Beiträge: 970
- Registriert: Donnerstag 4. Oktober 2018, 20:23
- Schulform: Gymnasium
Re: Umlaute ersetzen
Hallo,
das kann man mit der Funktion „ReplaceText“ erreichen.
https://wiki.svws.nrw.de/mediawiki/inde ... eplaceText
das kann man mit der Funktion „ReplaceText“ erreichen.
https://wiki.svws.nrw.de/mediawiki/inde ... eplaceText
Freundliche Grüße
Falko Müller
Falko Müller
- Raffenberg
- Beiträge: 2157
- Registriert: Dienstag 25. September 2018, 15:22
- Schulform: Gymnasium
- Kontaktdaten:
Re: Umlaute ersetzen
Hallo Herr(?) Peter, hallo Falko,
Leider funktioniert die ReplaceText (bzw. die ReplaceTextEx)-Funktion nicht mit Umlauten. Es wäre tatsächlich schön, wenn die Funktion auch mit einem erweiterten Zeichensatz funktionieren würde.
Mir ist innerhalb des Reportdesigners keine Möglichkeit bekannt, das zu realisieren.
Leider funktioniert die ReplaceText (bzw. die ReplaceTextEx)-Funktion nicht mit Umlauten. Es wäre tatsächlich schön, wenn die Funktion auch mit einem erweiterten Zeichensatz funktionieren würde.
Mir ist innerhalb des Reportdesigners keine Möglichkeit bekannt, das zu realisieren.
Mit freundlichen Grüßen
Jens Raffenberg
Jens Raffenberg
- Falko Müller
- Fachberater*in
- Beiträge: 970
- Registriert: Donnerstag 4. Oktober 2018, 20:23
- Schulform: Gymnasium
Re: Umlaute ersetzen
Ok, schon wieder was gelernt. Hatte es nicht getestet, weil ich davon ausging, dass es so klappt. Danke Jens.
Freundliche Grüße
Falko Müller
Falko Müller
- wschrewe
- Fachberater*in
- Beiträge: 1686
- Registriert: Dienstag 25. September 2018, 17:36
- Schulform: BK (Pensionär)
- Kontaktdaten:
Re: Umlaute ersetzen
Merkwürdig. Bei mir geht das problemlos. Es würde mich auch sehr wundern, wenn das nicht ginge, weil die Funktion intern die Delphi-Routine StringReplace verwendet, und die arbeitet mit Unicode-Strings.Raffenberg hat geschrieben: ↑Samstag 6. Februar 2021, 15:10Leider funktioniert die ReplaceText (bzw. die ReplaceTextEx)-Funktion nicht mit Umlauten.
Mit freundlichen Grüßen
Walter Schrewe
"If all else fails, read the instructions" (Donald E. Knuth, letzter TeX - Hilfehinweis)
Walter Schrewe
"If all else fails, read the instructions" (Donald E. Knuth, letzter TeX - Hilfehinweis)
- Raffenberg
- Beiträge: 2157
- Registriert: Dienstag 25. September 2018, 15:22
- Schulform: Gymnasium
- Kontaktdaten:
Re: Umlaute ersetzen
Hallo Herr Schrewe,
Bei all meinen Tests funktioniert das nicht. Ich teste in Schild in RichText Feldern. Klappte bei mir auch nicht mit chr(). Ich wäre froh, eine Lösung zu haben. Ich schätze, dass das auch der Grund ist, weshalb die Serienbriefe immer ohne Umlaute realisiert wurden. String-Replace habe ich auch schon probiert, kennt der Reportdesigner leider nicht.
Können Sie Mal eine Beispieldatei zur Verfügung stellen?
Bei all meinen Tests funktioniert das nicht. Ich teste in Schild in RichText Feldern. Klappte bei mir auch nicht mit chr(). Ich wäre froh, eine Lösung zu haben. Ich schätze, dass das auch der Grund ist, weshalb die Serienbriefe immer ohne Umlaute realisiert wurden. String-Replace habe ich auch schon probiert, kennt der Reportdesigner leider nicht.
Können Sie Mal eine Beispieldatei zur Verfügung stellen?
Mit freundlichen Grüßen
Jens Raffenberg
Jens Raffenberg
-
- Fachberater*in
- Beiträge: 699
- Registriert: Montag 1. Oktober 2018, 20:30
- Schulform: Gymnasium
- Kontaktdaten:
Re: Umlaute ersetzen
Hallo Jens,
RichText ist etwas anderes. Da wird ein Richtext ä als Plaintext \'e4 codiert. Die ReplaceText Funktionen arbeiten auf PlainText-Basis. Daher funktioniert ein ersetzen nicht. Und ein Absatz in RichText ist \par, weshalb chr() nicht funktioniert.
Wenn das ein Plaintext ist, kann man einfach folgendes verwenden.
procedure DBText3OnGetText(var Text: String);
begin
Text := ReplaceTextEx(ReplaceTextEx(ReplaceTextEx(Text, 'ä', 'ae'), 'ö', 'oe'), 'ü', 'ue');
end;
RichText ist etwas anderes. Da wird ein Richtext ä als Plaintext \'e4 codiert. Die ReplaceText Funktionen arbeiten auf PlainText-Basis. Daher funktioniert ein ersetzen nicht. Und ein Absatz in RichText ist \par, weshalb chr() nicht funktioniert.
Wenn das ein Plaintext ist, kann man einfach folgendes verwenden.
procedure DBText3OnGetText(var Text: String);
begin
Text := ReplaceTextEx(ReplaceTextEx(ReplaceTextEx(Text, 'ä', 'ae'), 'ö', 'oe'), 'ü', 'ue');
end;
- Raffenberg
- Beiträge: 2157
- Registriert: Dienstag 25. September 2018, 15:22
- Schulform: Gymnasium
- Kontaktdaten:
Re: Umlaute ersetzen
Hallo Michael,
danke für deine Erläuterung. Das erklärt alles. Ich hatte die Funktion bisher immer nur in Richtext-Feldern angewandt. Mein Fehler, der hier für Verwirrung gesorgt hat. Entschuldigung dafür. Dann kann ich also ä in Richtext-Feldern mit folgendem Befehl ersetzen:
Text := ReplaceTextEx(Text, '\''e4','ae');
(zwei Hochkommata im Text werden als eins interpretiert)
danke für deine Erläuterung. Das erklärt alles. Ich hatte die Funktion bisher immer nur in Richtext-Feldern angewandt. Mein Fehler, der hier für Verwirrung gesorgt hat. Entschuldigung dafür. Dann kann ich also ä in Richtext-Feldern mit folgendem Befehl ersetzen:
Text := ReplaceTextEx(Text, '\''e4','ae');
(zwei Hochkommata im Text werden als eins interpretiert)
Mit freundlichen Grüßen
Jens Raffenberg
Jens Raffenberg
-
- Beiträge: 415
- Registriert: Montag 3. Dezember 2018, 18:43
- Schulform: WbK (a. D.)
Re: Umlaute ersetzen
Guten Tag,
Codierung von ü:
Codierung von ö:
Das geht, ich vermute aber, dass Sie die Variablenbezeichnung 'Text' durch 'Elementname.RichText' ersetzen müssen.Raffenberg hat geschrieben: ↑Sonntag 7. Februar 2021, 13:43 Dann kann ich also ä in Richtext-Feldern mit folgendem Befehl ersetzen:
Text := ReplaceTextEx(Text, '\''e4','ae');
Codierung von ü:
Code: Alles auswählen
\'fc
Code: Alles auswählen
\'f6
Grüße aus Bochum
Christoph Sprung
Christoph Sprung
- Raffenberg
- Beiträge: 2157
- Registriert: Dienstag 25. September 2018, 15:22
- Schulform: Gymnasium
- Kontaktdaten:
Re: Umlaute ersetzen
Hallo Herr Sprung,Christoph Sprung hat geschrieben: ↑Montag 8. Februar 2021, 12:28 Das geht, ich vermute aber, dass Sie die Variablenbezeichnung 'Text' durch 'Elementname.RichText' ersetzen müssen.
ja, sie haben natürlich recht.
Ich habe eine schöne Übersetzungstabelle gefunden, welche die Beziehung von anderen Sonderzeichen und rtf-Code auflistet. Ich habe Sie als ersten Treffer bei den Suchbegriffen "ascii-rtf character chart" erhalten.
Mit freundlichen Grüßen
Jens Raffenberg
Jens Raffenberg