System.AnsiStrings.CharLength

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

function CharLength(const S: AnsiString; Index: Integer): Integer;

C++

extern DELPHI_PACKAGE int __fastcall CharLength(const System::AnsiString S, int Index)/* overload */;

Propriétés

Type Visibilité  Source Unité  Parent
function public
System.AnsiStrings.pas
System.AnsiStrings.hpp
System.AnsiStrings System.AnsiStrings

Description

Obtient le nombre d'octets requis par caractère.

CharLength renvoie le nombre d'octets requis par le caractère de S commençant à la position Index. Si le caractère ne commence pas à la position Index, cette fonction renvoie la taille du reste du caractère, et non la longueur totale du caractère.

Remarque :  Index est un index d'élément dans S, et non un index de caractère ou d'octet.

Si le système n'utilise pas un système de caractères codés sur plusieurs octets (MBCS), CharLength renvoie toujours 1.

L'exemple suivant illustre l'opération CharLength.

type
  SJISString = type AnsiString(932);

var
  A: SJISString;
  L: Integer;

begin
  A := 'A' + 'B' + #$82#$A0 + // Japanese Hiragana 'A'
    #$82#$A2 + // Japanese Hiragana 'I'
    #$82#$A4 + // Japanese Hiragana 'U'
    'C' + 'D';

  L := CharLength(A, 1); //renvoie 1 ('A')
  L := CharLength(A, 2); //renvoie 1 ('B')
  L := CharLength(A, 3); //renvoie 2
  L := CharLength(A, 4); //renvoie 1

end.

Dans cet exemple, quand l'index vaut 1 ou 2, il pointe sur le début d'un caractère à octet unique, la fonction renvoie alors 1. Quand l'index vaut 3, il pointe sur le début d'un caractère à deux octets, la fonction renvoie alors 2. Quand l'index vaut 4, il pointe sur la seconde moitié d'un caractère à deux octets, la fonction renvoie alors 1. Sachez que pour cet exemple, la taille d'élément est 1. Certains caractères nécessitent deux éléments, et d'autres seulement un élément.

CharLength peut être utilisée pour localiser la position des caractères multi-octets dans une chaîne.

Voir aussi