Umlaute ersetzen

Alles, was Reporting und Drucken betrifft.
Fehlermeldungen, Fragen usw.
Themen zu einzelnen Formularen bitte im speziellen Forum ...

Moderatoren: Raffenberg, A. Schüller, Pfotenhauer

wdpeter
Beiträge: 8
Registriert: Mittwoch 5. Juni 2019, 14:54
Schulform: Gymnasium

Umlaute ersetzen

Beitrag von wdpeter »

Guten Morgen,
gibt es eine Funktion, mit der man in einem Textstring Umlaute umsetzen kann?

Viele Grüße
W.-D. Peter
Benutzeravatar
Falko Müller
Fachberater*in
Beiträge: 970
Registriert: Donnerstag 4. Oktober 2018, 20:23
Schulform: Gymnasium

Re: Umlaute ersetzen

Beitrag von Falko Müller »

Hallo,
das kann man mit der Funktion „ReplaceText“ erreichen.
https://wiki.svws.nrw.de/mediawiki/inde ... eplaceText
Freundliche Grüße
Falko Müller
Benutzeravatar
Raffenberg
Beiträge: 2157
Registriert: Dienstag 25. September 2018, 15:22
Schulform: Gymnasium
Kontaktdaten:

Re: Umlaute ersetzen

Beitrag von Raffenberg »

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.
Mit freundlichen Grüßen
Jens Raffenberg
Benutzeravatar
Falko Müller
Fachberater*in
Beiträge: 970
Registriert: Donnerstag 4. Oktober 2018, 20:23
Schulform: Gymnasium

Re: Umlaute ersetzen

Beitrag von Falko Müller »

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
Benutzeravatar
wschrewe
Fachberater*in
Beiträge: 1686
Registriert: Dienstag 25. September 2018, 17:36
Schulform: BK (Pensionär)
Kontaktdaten:

Re: Umlaute ersetzen

Beitrag von wschrewe »

Raffenberg hat geschrieben: Samstag 6. Februar 2021, 15:10Leider funktioniert die ReplaceText (bzw. die ReplaceTextEx)-Funktion nicht mit Umlauten.
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.
Mit freundlichen Grüßen
Walter Schrewe
"If all else fails, read the instructions" (Donald E. Knuth, letzter TeX - Hilfehinweis)
Benutzeravatar
Raffenberg
Beiträge: 2157
Registriert: Dienstag 25. September 2018, 15:22
Schulform: Gymnasium
Kontaktdaten:

Re: Umlaute ersetzen

Beitrag von Raffenberg »

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?
Mit freundlichen Grüßen
Jens Raffenberg
M. Plümper
Fachberater*in
Beiträge: 699
Registriert: Montag 1. Oktober 2018, 20:30
Schulform: Gymnasium
Kontaktdaten:

Re: Umlaute ersetzen

Beitrag von M. Plümper »

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;
Benutzeravatar
Raffenberg
Beiträge: 2157
Registriert: Dienstag 25. September 2018, 15:22
Schulform: Gymnasium
Kontaktdaten:

Re: Umlaute ersetzen

Beitrag von Raffenberg »

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)
Mit freundlichen Grüßen
Jens Raffenberg
Christoph Sprung
Beiträge: 415
Registriert: Montag 3. Dezember 2018, 18:43
Schulform: WbK (a. D.)

Re: Umlaute ersetzen

Beitrag von Christoph Sprung »

Guten Tag,
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');
Das geht, ich vermute aber, dass Sie die Variablenbezeichnung 'Text' durch 'Elementname.RichText' ersetzen müssen.

Codierung von ü:

Code: Alles auswählen

 \'fc
Codierung von ö:
Grüße aus Bochum
Christoph Sprung
Benutzeravatar
Raffenberg
Beiträge: 2157
Registriert: Dienstag 25. September 2018, 15:22
Schulform: Gymnasium
Kontaktdaten:

Re: Umlaute ersetzen

Beitrag von Raffenberg »

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.
Hallo Herr Sprung,
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
Antworten

Zurück zu „Drucken / Reporting“