Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie unterscheidet man Groß- von Kleinbuchstaben und...? (https://www.delphipraxis.net/141429-wie-unterscheidet-man-gross-von-kleinbuchstaben-und.html)

ml-kuen 8. Okt 2009 21:28


Wie unterscheidet man Groß- von Kleinbuchstaben und...?
 
Hallo Gemeinde,

suche schon eine Weile nach einer Möglichkeit, große von kleinen Buchstaben, sowie Sonderzeichen von Ziffern zu unterscheiden. Dies sollte unabhängig vom verwendeten ANSI-Characterset funktionieren. Hat jemand eine Idee?

Gruß
Michael

SirThornberry 8. Okt 2009 21:36

Re: Wie unterscheidet man Groß- von Kleinbuchstaben und...?
 
Die Buchstaben und Ziffern sollten bei allen Charsets gleich sein.
Und was verstehst du unter "unterscheiden"? Wie man einen Unterschied zwischen Groß- und Kleinbuchstaben feststellt? Wie machst du es als Mensch? Genau so sollte man es dann auch umsetzen.

Wolfgang Mix 8. Okt 2009 21:41

Re: Wie unterscheidet man Groß- von Kleinbuchstaben und...?
 
Schau Dir 'mal die Funktion Ord und eine ASCII-Tabelle an.
Das Alphabeth beginnt bei Gr0ßbuchstabe A = Ord(65)


[Edit] Herzlich willkommen in der DP[Edit] :dp:

Gruß

Wolfgang

Namenloser 8. Okt 2009 21:47

Re: Wie unterscheidet man Groß- von Kleinbuchstaben und...?
 
In Delphi gibt es eine sehr praktische Sache: Sets.
Delphi-Quellcode:
var
  character: char;
begin
  character := 'P'; // Irgendein Zeichen
  if character in ['a'..'z'] then
    ShowMessage('Kleinbuchstabe')
  else if character in ['A'..'Z'] then
    ShowMessage('Großbuchstabe')
  else if character in ['0'..'9'] then
    ShowMessage('Zahl')
  else
    ShowMessage('Sonderzeichen')
end;
In diesem Fall wäre allerdings das Case-Konstrukt noch eleganter:
Delphi-Quellcode:
var
  character: char;
begin
  character := 'P'; // Irgendein Zeichen
  case character of
    'a'..'z': ShowMessage('Kleinbuchstabe');
    'A'..'Z': ShowMessage('Großbuchstabe');
    '0'..'9': ShowMessage('Zahl');
    else     ShowMessage('Sonderzeichen');
  end;
end;

himitsu 8. Okt 2009 21:50

Re: Wie unterscheidet man Groß- von Kleinbuchstaben und...?
 
wenn es sich nur um die Buchstaben, wie A-Z und ÄÖÜ handelt, dann geht auch dieses
Delphi-Quellcode:
if Ord(Key) and $20 <> 0 then IstEinKleinbuchstabe;
ob es jetzt auch bei allen Sonderzeichen ala Á und Co. auch geht, kann ich allerdings nicht sagen, aber bei den normalen Buchstaben ist es immer so :angel:


[edit]
ansonsten
Delphi-Quellcode:
if AnsiUpperCase(Key)[1] = Key then IstEinGroßbuchstabe;

ml-kuen 8. Okt 2009 22:06

Re: Wie unterscheidet man Groß- von Kleinbuchstaben und...?
 
Vielen Dank für eure schnelle Hilfe. Was die deutsche Sprache angeht, mögen die Lösungsvorschläge alle brauchbar sein, jedoch was ist, wenn ich auch bspw. den Kyrillischen, Grichischen oder sonstigen Zeichensatz unterstützen möchte. Bleibt mir nichts Anderes, als den aktuellen Characterset zu ermitteln um dann mit den Richtigen Sets zu arbeiten?
Um so länger ich drüber nachdenke, desto sicherer bin ich mir, dass es da kein "Allheilmittel" gibt.

Wenn's noch andere Ideen gibt, sind sie herzlich willkommen hier aufgeschrieben zu werden.

Nochmals herzlichen Dank an alle Helfer.

Michael

SirThornberry 8. Okt 2009 22:13

Re: Wie unterscheidet man Groß- von Kleinbuchstaben und...?
 
Ziffern sind überall gleich. Die Buchstaben kannst du eventuell mit AnsiLowerCase und AnsiUppercase bedingt heraus finden (das ß im deutschen zum Beispiel nicht)

ml-kuen 8. Okt 2009 22:23

Re: Wie unterscheidet man Groß- von Kleinbuchstaben und...?
 
Genau, ß und andere Ausreißer machen da einen Sonderfall drauß. Ausserem gibt es in andern Codesets auch Unterschiede in der Anzahl der Buchstaben des jeweiligen Alphabets.

Danke für den Tip

Michael

SirThornberry 8. Okt 2009 22:34

Re: Wie unterscheidet man Groß- von Kleinbuchstaben und...?
 
Die Anzahl der Buchstaben ist egal, lediglich Buchstaben die sich nicht in Groß-/Kleinschreibung unterscheiden bilden eine Außnahme. Ansonsten kann man ermitteln ob es sich um einen Buchstaben handelt in dem man prüft ob AnsiUpperCase und AnsiLowerCase verschiedene Ergebnisse liefern

ml-kuen 8. Okt 2009 22:37

Re: Wie unterscheidet man Groß- von Kleinbuchstaben und...?
 
Danach müsste ja die Lösung des Problems in den Units dieser und ähnlicher Funktionen liegen. Wo sind diese Sets oder was auch immer denn definiert? Kann man das irgwendwie rausfinden, oder liegen die in Delphi nicht als Quellcode vor?

Gruß
Michael


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:40 Uhr.
Seite 1 von 2  1 2      

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