Version 11 (Geändert)
Character code (Zeichen) Zahl
Parameter | Typ | Beschreibung | |
Zeichen | String | Zeichen, dessen Code gewünscht wird | |
Funktionsergebnis | Zahl | Code für das Zeichen |
Beschreibung
Die FunktionCharacter code gibt den Code des Zeichens zurück, das im Parameter Zeichen übergeben wurde.
- Läuft die Datenbank im Unicode Modus (Standardmodus für Datenbanken, die mit Version 11 oder höher erstellt wurden), gibt die Funktion den Code Unicode UTF_16 von Zeichen zurück (zwischen 1 und 65535).
- Läuft die Datenbank im ASCII Kompatibilitätsmodus, gibt die Funktion den ASCII Code von Zeichen zurück (zwischen 0 und 255).
Weitere Informationen dazu finden Sie im Abschnitt Über Unicode.
Bei mehr als 1 Zeichen in String, gibt Character code nur den Code des ersten Zeichens zurück.
Die Funktion Char ist das Gegenstück zu Character code. Sie gibt das Zeichen zum entsprechenden UTF-16 oder ASCII Code zurück.
Wichtig: Im ASCII Kompatibilitätsmodus sind alle Felder, Variablen oder Werte vom Typ Text, die noch nicht in einen anderen ASCII Code konvertiert wurden, unter Windows und auf Macintosh Mac OS kodiert. Weitere Informationen dazu finden Sie im Abschnitt ASCII Codes.
Beispiele
1. In einem Vergleich wird normalerweise nicht zwischen Klein- und Großschreibung unterschieden. Mit Character code können Sie diese Unterscheidung machen.
Folgende Zeile gibt TRUE zurück:
("A" = "a")
Folgende Zeile dagegen gibt FALSE zurück:
(Character code("A")=Character code("a"))
2. Dieses Beispiel gibt den Code des ersten Zeichens der Zeichenkette "ABC" zurück:
GetCode=Character code("ABC") ` GetCode ergibt 65, den Character Code von A
3. Folgendes Beispiel prüft den Zeilenumbruch und Tabulatorzeichen:
For($vlChar;1;Length(vtText)) Case of : (vtText[[$vlChar]]=Char(Carriage return)) ` Führe etwas aus : (vtText[[$vlChar]]=Char(Tab)) ` Führe wieder etwas aus : (...) ` ... End case End for
Bei mehrmaliger Ausführung in langen Texten läuft der Text kompiliert schneller mit folgender Schreibweise ab:
For($vlCode;1;Length(vtText)) $vlCode:=Character code(vtText[[$vlChar]]) Case of : ($vlCode=Carriage return) ` Führe etwas aus : ($vlCode=Tab) ` Führe wieder etwas aus : (...) ` ... End case End for
Der zweite Teil des Code läuft schneller, weil er pro Durchlauf nur auf ein Zeichen zugreift und für Zeilenumbruch und Tabulatorzeichen nicht Zeichenketten, sondern Lange Ganzzahlen miteinander vergleicht. Verwenden Sie diese Technik, wenn Sie mit gängigen Codes wie CR und TAB arbeiten.
Referenz
ASCII Codes, Char, Symbole für direkten Zeichenzugriff.