Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Ist ein Zeichen ein Buchstabe? (https://www.delphipraxis.net/170378-ist-ein-zeichen-ein-buchstabe.html)

BlueStarHH 14. Sep 2012 09:42

Ist ein Zeichen ein Buchstabe?
 
Hallo,

wie kann ich erkenne, ob ein Zeichen ein Buchstabe ist? Beim einfachen ASCII-Zeichensatz ging das ja noch relativ einfach mit CharInSet(MeinZeichen, ['A'..'Z']). Doch wie prüfe ich das nun bei Unicode? Da kann man ja schlecht alle möglichen Zeichen in allen Sprachen als Set aufzählen. Gibt es da schon eine fertige Funktion?

jaenicke 14. Sep 2012 09:45

AW: Ist ein Zeichen ein Buchstabe?
 
IsCharAlpha bzw. IsCharAlphaNumeric ;-)

Daniel 14. Sep 2012 09:45

AW: Ist ein Zeichen ein Buchstabe?
 
Moin,

möglicherweise ist die Funktion Delphi-Referenz durchsuchenSystem.Character.IsLetter etwas für Dich.

himitsu 14. Sep 2012 10:11

AW: Ist ein Zeichen ein Buchstabe?
 
In ein "Set" paßt es eh nicht, da dieses nur 256 Zeichen enthalten kann. :angle2:

siehe auch Character.pas, bzw. System.Character.pas (Daniels Link falsch gelesen)
Aber vielleicht auch direkt auf Delphi-Referenz durchsuchenTCharacter.IsLetter losgehn.

Zitat:

ging das ja noch relativ einfach
Eigentlich nicht, denn je nach Codepage hast du da einige "Buchstaben" (z.B. äüößé) übersehn.
Im "Unicode" ist alles fest und wird nicht von sowas wie Codepages verändert. (gleiche Bytes = unterschiedliche Zeichen/Buchstaben)
Aber je nach implementierter Unicode-Version liefern die Testfunktionen (IsLetter/IsCharIsAlpha/usw.) dennoch unterschiedliche Ergebnisse, da mit der Zeit neue Zeichen aufgenommen werden und sich doch mal Kleinigekeiten verändern oder gar rausfliegen.


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