Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zeichen auf Lowercase etc. testen (https://www.delphipraxis.net/59501-zeichen-auf-lowercase-etc-testen.html)

Der Jan 23. Dez 2005 10:28


Zeichen auf Lowercase etc. testen
 
Hallo,

gibt es in OP Funktionen, um zu testen, ob ein Zeichen lower/uppercase, digit o.ä. ist?

Sharky 23. Dez 2005 10:36

Re: Zeichen auf Lowercase etc. testen
 
Hai Jan,

das kannst Du dir ganz schnell selber basteln:
Delphi-Quellcode:
type
 TCharType = (chUpper,chLower,chDigit,chUnknown);

function CharType(aValue : Char): TCharType;
begin
  case Ord(aValue) of
    $30..$39 : Result := ChDigit;
    $41..$5A : Result := chUpper;
    $61..$7A : Result := chLower
  else
    result := chUnknown;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  case CharType(' ') of
    chUpper : ShowMessage('Groß');
    chLower : ShowMessage('Klein');
    chDigit : ShowMessage('Zahl');
    chUnknown : ShowMessage('Kenn ich net');
  end;
end;

Luckie 23. Dez 2005 10:38

Re: Zeichen auf Lowercase etc. testen
 
Sharky!!!! Umständlicher geht es nun wirklich nicht. :mrgreen: :
Delphi-Quellcode:
function IsLower(chr: Char): Boolean;
begin
  result := chr in ['a'..'z'];
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(BoolToStr(IsLower('B'), True));
end;

Sharky 23. Dez 2005 10:40

Re: Zeichen auf Lowercase etc. testen
 
Zitat:

Zitat von Der Jan
... ob ein Zeichen lower/uppercase, digit o.ä. ist?

Zitat:

Zitat von Luckie
Sharky!!!! Umständlicher geht es nun wirklich nicht....

Hai Du Luckie,

er wollte ja nicht nur wissen ob es Lower ist sonder ob es Lower oder Upper oder Digit ist.
Und da finde ich meine Methode nicht umständlich ;-)

Luckie 23. Dez 2005 10:41

Re: Zeichen auf Lowercase etc. testen
 
Ok, hast gewonnen. ;)

Robert Marquardt 23. Dez 2005 10:42

Re: Zeichen auf Lowercase etc. testen
 
Luckie, schlampiger gehts wohl nicht. :mrgreen:
Was ist denn mit den Umlauten?

Luckie 23. Dez 2005 10:44

Re: Zeichen auf Lowercase etc. testen
 
Zitat:

Zitat von Robert Marquardt
Luckie, schlampiger gehts wohl nicht. :mrgreen:
Was ist denn mit den Umlauten?

Die kann man ja noch ergänzen. Für das Rundumsorglos-Copy-and-Waste-Paket war ich zu faul. ;)

Flocke 23. Dez 2005 10:45

Re: Zeichen auf Lowercase etc. testen
 
Dann mache ich's mal, ist ja ein Einzeller:
Delphi-Quellcode:
IsLower := AnsiUpperCase(ch) <> ch;
IsUpper := AnsiLowerCase(ch) <> ch;
IsDigit := ch in ['0' .. '9'];

Sharky 23. Dez 2005 10:57

Re: Zeichen auf Lowercase etc. testen
 
Zitat:

Zitat von Flocke
Dann mache ich's mal, ist ja ein Einzeller:

:cry:
Und da habe ich mir solche "Mühe" gegeben ;-)
Delphi-Quellcode:
type
 TCharType = (chControl,chBlank,chUpper,chLower,chDigit,chUnknown);

function CharType(aValue : Char): TCharType;
begin
  case Ord(aValue) of
    $00..$1F                      : Result := chControl;
    $20                            : Result := chBlank;
    $30..$39                       : Result := ChDigit;
    $41..$5A,$C0..$D6,$D8..$DE    : Result := chUpper;
    $61..$7A,$E0..$F6,$F8..$FF,$DF : Result := chLower
  else
    result := chUnknown;
  end;
end;

Luckie 23. Dez 2005 10:58

Re: Zeichen auf Lowercase etc. testen
 
OK, Delphi haben wir wohl ausgereizt. Wer übernimmt jetzt den ASM Part? :mrgreen:

Der Jan 23. Dez 2005 11:02

Re: Zeichen auf Lowercase etc. testen
 
Ääähm, ja.... Erstmal danke.

Das mit in ['a'..'z'] usw. ist mir klar, sorry, die Frage war wohl auch bissel blöd bzw. unvollständig formuliert...
Wenn man das so macht, wie ihr es beschreibt, beachtet man nicht die aktuellen Locale-Settings.
Ich suche etwas, wie die Funktionen islower(), isupper(), isdigit() etc. in C.

Edit: @Flocke, sorry, den post hatte ich irgendwie übersehen :oops: das ist schon ziemlich das, was ich suche..

Robert Marquardt 23. Dez 2005 11:31

Re: Zeichen auf Lowercase etc. testen
 
Das Win32 API hat da CharLower und CharUpper Funktionen.
Diese beruecksichtigen die Locale.

Der Jan 23. Dez 2005 13:01

Re: Zeichen auf Lowercase etc. testen
 
Alles klar, danke!

Da gibts auch IsCharUpper, IsCharLower und so...


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:03 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