-
-
AnsiString est la
classe permettant de gérer une chaine de caractères de façon
élémentaire. Elle est conseillée lorsqu'un traitement
doit être réalisé sur cette chaine.
-
Cette classe est
souvent utilisée comme dans la classe TStrings, où chaque
chaine est en fait une instance de AnsiString.
-
Elle peut aussi être
instanciée directement .
-
Elle ne contient
pas de propriétés
Retour à
la page principale de builder
AnsiCompare
Cette méthode permet de
comparer deux AnsiString en distinguant Majuscules et Minuscules.
Si les deux chaines sont égales,
la valeur renvoyée est 0.
Si la chaine qui demande la comparaison
est inférieure à celle passée en argument, la valeur
renvoyée est négative.
Sinon, elle est supérieure à
0.
Exemple :
AnsiString Chaine1="Bonjour";
ShowMessage (Chaine1.AnsiCompare("Bonjour"))
; // Affiche 0
ShowMessage (Chaine1.AnsiCompare("Bonjous))
; // Affiche -1
ShowMessage (Chaine1.AnsiCompare("Bonjoun"))
; // Affiche 1
AnsiCompareIC
Même fonctionnement que
AnsiCompare mais sans distinguer les Majuscules des Minuscules.
Exemple :
AnsiString Chaine1="Bonjour";
ShowMessage (Chaine1.AnsiCompareIC("BONJOUR"))
; // Affiche 0
AnsiPos
Cette méthode retourne
la position d'une sous-chaine contenue dans la chaine.
Si la sous-chaine n'est pas présente
dans la chaine, la valeur retournée est 0.
Exemple :
AnsiString Chaine1="Bonjour"
;
ShowMessage (Chaine1.AnsiPos("onj"))
; // Affiche 2
ShowMessage (Chaine1.AnsiPos("noj"))
; // Affiche 0
c_str
Cette méthode retourne
un pointeur sur la chaine convertie en table de caractères à
\0 terminateur.
Attention: Ce pointeur n'a pas
une durée de vie très longue. A utiliser très rapidement
ou à recopier ailleurs.
Exemple :
AnsiString Chaine1="Bonjour"
;
char Table[8] ;
strcpy(Table, Chaine1.c_str());
Table contient maintenant "Bonjour" avec le
\0 terminateur, d'où la dimension 8 fixée pour la table.
Delete
Cette méthode supprime
des caractères à partir d'un index fourni.
Exemple :
AnsiString Chaine1="abcdefg"
;
Chaine1.Delete(2, 3) ;
ShowMessage (Chaine1) ; // Affiche
aefg
FloatToStrF
Cette méthode converti
en chaine un float en respectant des règles de formatage.
Insert
Cette méthode insére
une chaine à la position prévue par l'index.
Exemple :
AnsiString Chaine1="abcdefg"
;
Chaine1.Insert("Bonjour",3) ;
ShowMessage (Chaine1) ; // Affiche
abBonjourcdefg
IntToHex
Cette méthode converti
un entier en sa représentation héxadécimale.
Exemple :
AnsiString Chaine1 ;
// Syntaxe 1:
Chaine1= Chaine1.IntToHex(253,5);
// Syntaxe 2, plus simple mais ne faisant
pas appel
// à la méthode de la classe
AnsiString:
Chaine1= IntToHex(253,5);
ShowMessage (Chaine1) ; // Affiche
000FD
IsDelimiter
Détermine si un caractère
de la chaine est un délimiteur.
Exemple :
short int Variable ;
AnsiString Chaine1="abc,def;ghi" ;
if (Chaine1.IsDelimiter(",;",Variable)==true)
ShowMessage ("true")
;
else
ShowMessage ("false")
;
Résultat:affiche
true si Variable = 4 ou 7 et false dans tous les autres cas
Length
Cette méthode retourne
le nombre de caractères contenu dans la chaine sans tenir compte
d'un caractère terminateur.
Exemple :
AnsiString Chaine1="Bonjour"
;
ShowMessage(Chaine1.Length()); // Affiche
7
LowerCase
et UpperCase
Ces méthodes retournent
la chaine convertie respectivement en minuscules et en majuscules.
Exemple :
AnsiString Chaine1="Bonjour"
;
Chaine1=Chaine1.LowerCase() ;
ShowMessage (Chaine1);
// Affiche bonjour
Chaine1=Chaine1.UpperCase() ;
ShowMessage (Chaine1);
// Affiche BONJOUR
Operator
Nombre d'opérateurs ont
été surchargés afin de simplifier l'utilisation.
Opérateurs surchargés:!=,
[ ], +, +=, <, <=, =, ==, >, >=
Exemple 1:
AnsiString Chaine1="Bonjour"
;
if (Chaine1=="Bonjour")
ShowMessage("Chaines
identiques") ; // Message affiché
Exemple 2:
AnsiString Chaine1="Bonjour";
char Car=Chaine1[1] ;// Car contient 'B'
SetLength
Cette méthode tronque la
chaine à une longueur spécifiée.
Exemple :
AnsiString Chaine1="Bonjour"
;
Chaine1.SetLength(4) ;
ShowMessage(Chaine1); // Affiche Bonj
sprintf (Méthode apparue dans Builder 5)
Cette méthode permet de construire
une chaine en utilisant les règles de formatages du printf.
Exemple :
AnsiString Message ;
AnsiString ChaineTest="Bonjour" ;
Message.sprintf("La chaine %s contient %d
caractères", ChaineTest,
ChaineTest.Length()) ;
ShowMessage(Message);
// Message affiché : "La chaine
Bonjour contient 7 caractères"
SubString
Cette méthode extrait une
sous-chaine d'une chaine.
Exemple :
AnsiString Chaine1="Bonjour"
;
AnsiString Chaine2 ;
Chaine2=Chaine1.SubString(2,3) ;
ShowMessage (Chaine2); // Affiche
onj
ToDouble
Cette méthode converti
la chaine en un double.
Fonctionne aussi avec un float.
Il y a un risque de ne plus avoir la valeur
exacte du fait du codage en binaire de cette valeur réelle.
Attention: Si la chaine
ne contient pas quelque chose de convertible, une exception sera générée.
Exemple :
AnsiString Chaine1="123,456"
;
double Valeur ;
Valeur=Chaine1.ToDouble() ;
ShowMessage (Valeur);
// Affiche 123,456
float Valeur1 ;
Valeur1=Chaine1.ToDouble() ;
ShowMessage (Valeur1);
// Affiche 123,456001...
ToInt
Cette méthode converti
la chaine en un entier.
Fonctionne aussi avec un short int.
Attention: Si la chaine
ne contient pas quelque chose de convertible, une exception sera générée.
Exemple :
AnsiString Chaine1="1234" ;
int Valeur ;
Valeur=Chaine1.ToInt() ;
ShowMessage (Valeur);
// Affiche 1234
ToIntDef
Cette méthode converti
la chaine en un entier.
Fonctionne aussi avec un short int.
Si la chaine ne contient pas quelque chose
de convertible, la fonction renvoie la valeur par défaut.
Exemple :
AnsiString Chaine1="1234" ;
short int Valeur ;
Valeur=Chaine1.ToIntDef(0) ;
ShowMessage (Valeur);
// Affiche 1234
Chaine1="1234a" ;
Valeur=Chaine1.ToIntDef(0) ;
ShowMessage (Valeur);
// Affiche 0
Trim
Cette méthode supprime
les caractères espaces de début et de fin de chaine.
Supprime aussi les caractères de
contrôles de début et de fin.
Exemple :
AnsiString Chaine1="
\n1234\r " ;
Chaine1=Chaine1.Trim() ;
ShowMessage (Chaine1);
Affiche "1234", tous les espaces de début
et de fin ont disparus ainsi que les caractères \r et \n
TrimLeft
Cette méthode supprime
les caractères espaces de début de chaine.
Supprime aussi les caractères de
contrôles de début.
Exemple :
AnsiString Chaine1="
\r1234\n " ;
Chaine1=Chaine1.TrimLeft() ;
ShowMessage (Chaine1);
Affiche "1234\n
", tous les espaces de début ont disparus ainsi que le \r
TrimRight
Cette méthode supprime
les caractères espaces de fin de chaine.
Supprime aussi les caractères de
contrôles de fin.
Exemple :
AnsiString Chaine1="
\r1234\n " ;
Chaine1=Chaine1.TrimRight() ;
ShowMessage (Chaine1);
Affiche "
\r1234", tous les espaces de fin ont disparus ainsi que le \n