System.AnsiStrings.CharLength

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

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 in S 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.

Siehe auch