![]() |
AW: Ersetzen von Umlauten bei groß geschriebenen Wörtern
Mist :oops:
ÄHhhhhhhhhh |
AW: Ersetzen von Umlauten bei groß geschriebenen Wörtern
Zitat:
Es folgt ein kleines "l", also "Oe". "NÖ, das will ich nicht." ist ein Problem. EDIT: Obwohl das eigentlich auch klar ist. Selbst groß, der Buchstabe davor groß, also OE Meiner Meinung nach geht das nur nicht mit einem zweibuchstabigen Wort, das mit "ß" endet. |
AW: Ersetzen von Umlauten bei groß geschriebenen Wörtern
Zitat:
Gruß K-H P.S. Warum sollte man die Kodierung für das große SZ nicht trotzdem nutzen? |
AW: Ersetzen von Umlauten bei groß geschriebenen Wörtern
Zitat:
|
AW: Ersetzen von Umlauten bei groß geschriebenen Wörtern
Ich kenn nur scharfe Peperoni.
|
AW: Ersetzen von Umlauten bei groß geschriebenen Wörtern
Zitat:
Es muss ja nicht entschieden werden, ob das Ö in oe oder Oe ungewandelt werden soll. |
AW: Ersetzen von Umlauten bei groß geschriebenen Wörtern
Danke Jasocul für den Tipp. Aber auch NÖ dürfte kein Problem darstellen. Wenn es keinen Folgebuchstaben gibt und der Buchstabe davor auch noch groß ist, dann bleibt alles groß.
NÖ wird NOE Nö wird Noe Bei einem ß schließe ich für mich zwei Sachen aus: 1. Das die wenigen Worte mit ß und 2 Buchstaben nicht relevant sind. Mein Kollege aß gestern eine Pizza. 2. Das niemand es schafft ein großes ß einzugeben. Danke an himitsu für die interessanten Links. Vielen Dank für die schnellen Antworten |
AW: Ersetzen von Umlauten bei groß geschriebenen Wörtern
Zitat:
![]() Gruß K-H |
AW: Ersetzen von Umlauten bei groß geschriebenen Wörtern
Zitat:
|
AW: Ersetzen von Umlauten bei groß geschriebenen Wörtern
Meine Implementierung ohne Gewehr.
Code:
function UpperLowerReplaceString(aText, aFromText, aToUpperText, aToLowerText: String): String;
function IsLowerCaseChar(c: Char): Boolean; const cLowerCharacters = 'abcdefghijklmnopqrstuvwxyzäöü'; begin Result := (Pos(c, cLowerCharacters) > 0); end; function IsUpperCaseChar(c: Char): Boolean; const cUpperCharacters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ'; begin Result := (Pos(c, cUpperCharacters) > 0); end; var Pos: Integer; Upper: Boolean; weiter: Boolean; begin Pos := 1; while Pos <> 0 do begin Pos := PosEx(aFromText, aText, Pos); weiter := True; Upper := False; if (Pos <> 0) then begin if weiter and (Pos < length(aText)) and IsLowerCaseChar(aText[Pos + 1]) then begin //kleiner Buchstabe nach dem Umlaut Upper := False; weiter := False; end; if weiter and (Pos < length(aText)) and IsUpperCaseChar(aText[Pos + 1]) then begin //großer Buchstabe nach dem Umlaut Upper := True; weiter := False; end; if weiter and (Pos > 1) and IsUpperCaseChar(aText[Pos - 1]) then begin //großer Buchstabe vor dem Umlaut / ß Upper := True; weiter := False; end; Delete(aText, Pos, 1); if Upper then Insert(aToUpperText, aText, Pos) else Insert(aToLowerText, aText, Pos); end; end; Result := aText; end; function OhneUmlaute(_string: String): String; begin _string := ansiReplaceStr(_string, 'ä', 'ae'); _string := ansiReplaceStr(_string, 'ü', 'ue'); _string := ansiReplaceStr(_string, 'ö', 'oe'); // Wichtig ist an dieser Stelle, dass ß zuerst ersetzt wird, _string := UpperLowerReplaceString(_string, 'ß', 'SS', 'ss'); _string := UpperLowerReplaceString(_string, 'Ä', 'AE', 'Ae'); _string := UpperLowerReplaceString(_string, 'Ü', 'UE', 'Ue'); _string := UpperLowerReplaceString(_string, 'Ö', 'OE', 'Oe'); Result := _string; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:11 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