System.AnsiStrings.CharLength
Delphi
function CharLength(const S: AnsiString; Index: Integer): Integer;
C++
extern DELPHI_PACKAGE int __fastcall CharLength(const System::AnsiString S, int Index)/* overload */;
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
function | public | System.AnsiStrings.pas System.AnsiStrings.hpp |
System.AnsiStrings | System.AnsiStrings |
Beschreibung
Ermittelt die Anzahl der Bytes, die für ein Zeichen erforderlich ist.
CharLength gibt die Anzahl der Bytes zurück, die für das Zeichen in S
erforderlich ist, das bei Index
beginnt. Wenn das Zeichen nicht bei Index
beginnt, gibt diese Funktion die Größe des Restes des Zeichens zurück, nicht die vollständige Zeichenlänge.
Hinweis:
Index
ist ein Elementindex inS
und kein Byte- oder Zeichenindex.
Wenn im System kein Multibyte-Zeichensatz (MBCS) verwendet wird, gibt CharLength immer den Wert 1 zurück.
Das folgende Beispiel verdeutlich die Arbeitsweise von CharLength.
type
SJISString = type AnsiString(932);
var
A: SJISString;
L: Integer;
begin
A := 'A' + 'B' + #$82#$A0 + // Japanisch Hiragana 'A'
#$82#$A2 + // Japanisch Hiragana 'I'
#$82#$A4 + // Japanisch Hiragana 'U'
'C' + 'D';
L := CharLength(A, 1); //gibt 1 ('A') zurück
L := CharLength(A, 2); //gibt 1 ('B') zurück
L := CharLength(A, 3); //gibt 2 zurück
L := CharLength(A, 4); //gibt 1 zurück
end.
Wenn in diesem Beispiel der Index 1 oder 2 ist, zeigt er auf den Anfang eines Einzelbyte-Zeichens, daher gibt die Funktion 1 zurück. Wenn der Index 3 ist, zeigt er auf den Anfang eines Zweibyte-Zeichens, und die Funktion gibt 2 zurück. Wenn der Index 4 ist, zeigt er auf die zweite Hälfte eines Zweibyte-Zeichens, und die Funktion gibt 1 zurück. Beachten Sie bitte, dass in diesem Beispiel die Elementgröße 1 ist. Einige Zeichen benötigen zwei Elemente und einige nur ein Element.
CharLength kann zum Suchen der Position von Multibyte-Zeichen in einem String verwendet werden.