AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

UpperCase von 'ü' = 'ü'

Ein Thema von hsbc · begonnen am 24. Mär 2006 · letzter Beitrag vom 24. Mär 2006
Antwort Antwort
Seite 1 von 2  1 2      
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#1

UpperCase von 'ü' = 'ü'

  Alt 24. Mär 2006, 14:27
Hallo allerseits,

gibt es einen Trick, wo man auch Umlaute in UpperCase umwandeln kann ?

UpperCase ('ü') ergibt nämlich auch 'ü' und nicht 'Ü'

mfg
Herbert
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: UpperCase von 'ü' = 'ü'

  Alt 24. Mär 2006, 14:29
Hallo Herbert,

wie gefällt dir SysUtils.AnsiUppercase()?

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von R2D2
R2D2

Registriert seit: 20. Jan 2006
Ort: München
253 Beiträge
 
Delphi 2005 Personal
 
#3

Re: UpperCase von 'ü' = 'ü'

  Alt 24. Mär 2006, 14:30
Programmier dir halt selbst eine kleine Funktion, die je nach Zeichen entweder UpperCase aufruft, oder selbst eingreift.
  Mit Zitat antworten Zitat
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#4

Re: UpperCase von 'ü' = 'ü'

  Alt 24. Mär 2006, 14:39
Hallo marabu,

allerbesten Dank, genau das war's.

mfg
Herbert
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.079 Beiträge
 
Delphi 12 Athens
 
#5

Re: UpperCase von 'ü' = 'ü'

  Alt 24. Mär 2006, 15:09
UperCase und LowerCase ändern nur die Buchstaben A-Z und a-z ... Sonderzeichen, wie unseren deutschen Umlaute, werden ignoriert.

Dieses ist daher zu erklären, daß Uper-/LowerCase ncht auf einen bestimten Zeichensatz (wie z.B. ANSI) ausgelegt sind und es demnach diese Zeichen nicht unbedingt gibt.

Außerdem steht folgendes in der OH:
Zitat:
Beschreibung

UpperCase konvertiert den Inhalt von S in Großbuchstaben und gibt einen Zeiger auf den String zurück. Bei der Operation werden nur 7-Bit-ASCII-Zeichen zwischen 'a' und 'z' berücksichtigt. Sollen internationale 8-Bit-Zeichen konvertiert werden, verwenden Sie statt dessen die Funktion AnsiUpperCase.

Und wenn ich mich recht erinnere, dann rufen diese Funktionen auch nur UpperChar/LowerChar auf, welches nur reine BitOperationen sind, welche wiederum etwa so definiert sind
Delphi-Quellcode:
Function UpperChar(C: Char): Char;
  Begin
    //If (C >= $41) and (C <= $5A) Then Result := C or $20;
    If C in ['A'..'Z'] Then Result := C or $20;
  End;

// Char = Byte
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#6

Re: UpperCase von 'ü' = 'ü'

  Alt 24. Mär 2006, 15:55
Hallo nochmals,

der einseitige Vergleich funktioniert bereits, so wie es marabu geschrieben hat.

Ich habe hier nur noch das Problem, dass ich einen Datenbank-Vergleich (Firebird) machen muss und da gibt es leider Schwierigkeiten, da der SQL-Befehl UPPER leider ebenfalls keine Umlaute konvertieren kann. Bis jetzt finde ich leider keine Lösung.

Beispiel:

In meiner DB ist einmal der Name Müller und ein anderes mal MÜLLER gespeichert. Ich möchte nun mit einer Select-Abfrage alle Müller, egal ob gross oder klein geschrieben selektieren. Aber dies ist ja schon wieder ein Thema für die Datenbank.

mfg
Herbert
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.079 Beiträge
 
Delphi 12 Athens
 
#7

Re: UpperCase von 'ü' = 'ü'

  Alt 24. Mär 2006, 16:33
Eventuell kommst du ja auch besser, wenn du beim Vergleich die Umlaute umwandelst.

z.B.:
Ä und ä in ae
Ö und ö in oe
Ü und ü in ue
ß in ss
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
849 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: UpperCase von 'ü' = 'ü'

  Alt 24. Mär 2006, 17:38
Zitat von hsbc:
In meiner DB ist einmal der Name Müller und ein anderes mal MÜLLER gespeichert. Ich möchte nun mit einer Select-Abfrage alle Müller, egal ob gross oder klein geschrieben selektieren. Aber dies ist ja schon wieder ein Thema für die Datenbank.
Evtl. kann man in der Datenbank global einstellen, ob für Vergleiche die Groß-/Kleinschreibung berücksichtigt werden soll oder nicht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.079 Beiträge
 
Delphi 12 Athens
 
#9

Re: UpperCase von 'ü' = 'ü'

  Alt 24. Mär 2006, 17:59
Eigentlich sollte das möglich sein, sogar für Tabellen und "Strings" einzeln.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: UpperCase von 'ü' = 'ü'

  Alt 24. Mär 2006, 18:04
Hallo Herbert,

hier eine kleine Code-Spende - falls doch niemand eine collation table mit der Eigenschaft case insensitive findet.

marabu
Angehängte Dateien
Dateityp: zip ansi_udf_148.zip (1,7 KB, 29x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz