Einzelnen Beitrag anzeigen

Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#1

Lower/UpperCase beachtet Umlaute nicht

  Alt 8. Dez 2014, 15:26
Delphi-Version: 2009
Hallo,

in meinem Delphi 2009 (alle Updates installiert) beachten die Funktion LowerCase & UpperCase aus der Unit SysUtils nicht die deutschen Umlaute (ÖÄÜ). Könnt ihr das reproduzieren?

Ich habe mir eigene Funktionen geschrieben, die den Rückgabewert der SysUtils-Funktionen auf Umlaute prüft und ggf. in Groß- bzw. Klein-Buchstaben umwandelt:

Delphi-Quellcode:
    CHARACTERS_PRINTABLE_GERMAN_UPPERCASE: Array[0..2] of String = (
      'Ä', 'Ö', 'Ü'
    );

    CHARACTERS_PRINTABLE_GERMAN_LOWERCASE: Array[0..2] of String = (
      'ä', 'ö', 'ü'
    );

...
...

class function TCsString.UpperCase(Str: string): String;
var
  CharIndex: Integer;
begin
  Result := SysUtils.UpperCase(Str);

  for CharIndex := Low(Self.CHARACTERS_PRINTABLE_GERMAN_LOWERCASE) to High(Self.CHARACTERS_PRINTABLE_GERMAN_LOWERCASE) do
    Result := Self.Replace(Result, self.CHARACTERS_PRINTABLE_GERMAN_LOWERCASE[CharIndex], self.CHARACTERS_PRINTABLE_GERMAN_UPPERCASE[CharIndex], [rfReplaceAll]);
end;

class function TCsString.LowerCase(Str: string): String;
var
  CharIndex: Integer;
begin
  Result := SysUtils.LowerCase(Str);

  for CharIndex := Low(Self.CHARACTERS_PRINTABLE_GERMAN_UPPERCASE) to High(Self.CHARACTERS_PRINTABLE_GERMAN_UPPERCASE) do
    Result := Self.Replace(Result, self.CHARACTERS_PRINTABLE_GERMAN_UPPERCASE[CharIndex], self.CHARACTERS_PRINTABLE_GERMAN_LOWERCASE[CharIndex], [rfReplaceAll]);
end;
Andreas Lauß
Blog
  Mit Zitat antworten Zitat