CHAÎNE DE CARACTÈRE
Type de chaîne
Chaîne courte
Les chaînes courtes ont une longueur fixe, elles ne peuvent dépasser plus de 255 caractères. Étant donné que les chaînes courtes ont une valeur fixe, leurs vitesses d'exécution sont très rapides. On peut les déclarer de deux façons, mais une seule est vraiment utile.var Nom:shortstring; Prenom:string[30];
Lorsqu'on utilise shortstring, la longueur de la variable est automatiquement de 255 caractères. A moins d'avoir absolument besoin de 255 caractères, il n'est pas vraiment intéressant d'utiliser le type shortstring. Il est intéressant d'utiliser les chaînes courtes lorsqu'on sait que la longueur de la variable sera fixe ou que l'on sait le nombre de caractère maximum qu'il peut y avoir.
Le gain de vitesse sera appréciable si l'on fait beaucoup de manipulation sur les chaînes. Le premier élément d'une chaîne courte représente la longueur de la chaîne, ce qui peut s'avérer intéressant dans certaines situations.
Chaîne longue
Les chaînes longues sont allouées dynamiquement. Leur longueur est limitée à la taille de votre mémoire disponible. Tout le traitement pour allonger et réduire la taille de la chaîne est fait en coulisse, mais on perd un peu de vitesse.var Nom:string; Prenom:string;
Les chaînes longues n'ont pas d'élément zéro.
Chaîne à zéro terminal
Ce type de chaîne est très utilisé lorsqu'on doit utiliser les fonctions de Windows. Les fonctions de Windows utilisent des tableaux de caractères (langage c) et utilisent donc un 0 à la fin de la chaîne afin de marquer la fin de la chaîne. On doit utiliser le type PChar lorsqu'on manipule les fonctions de windows ou bien faire de la conversion.var libelle : string; begin libelle := 'Bonjour'; messagebox (0, PCHAR(libelle), 'Message', mb_ok); end;
Ce code utilise un api (très simple) afin d'afficher une boîte de message
Routine de gestion de chaîne
Voici quelques fonctions et procédures disponibles, il en existe de nombreuses autres.Routines de traitement de chaîne AZT
Fonction | Description |
StrAlloc | Alloue une zone tampon d'une taille donnée sur le tas. |
StrBufSize | Renvoie la taille d'une zone tampon de caractère alloué en utilisant StrAlloc ou StrNew. |
StrCat | Concatène deux chaînes. |
StrComp | Compare deux chaînes. |
StrCopy | Copie une chaîne. |
StrDispose | Dispose une zone tampon de caractère allouée en utilisant StrAlloc ou StrNew. |
StrECopy | Copie une chaîne et renvoie un pointeur à la fin de la chaîne. |
StrEnd | Renvoie un pointeur à la fin d'une chaîne. |
StrFmt | Formate une ou plusieurs valeurs dans une chaîne. |
StrIComp | Compare deux chaînes sans tenir compte des majuscules/minuscules. |
StrLCat | Concatène deux chaînes avec une longueur maximum donnée de la chaîne résultante. |
StrLComp | Compare deux chaînes pour une longueur maximum donnée. |
StrLCopy | Copie une chaîne jusqu'à une longueur maximum donnée. |
StrLen | Renvoie la longueur d'une chaîne. |
StrLFmt | Formate une ou plusieurs valeurs dans une chaîne avec une longueur maximum donnée. |
StrLIComp | Compare deux chaînes pour une longueur maximum donnée sans tenir compte des majuscules/minuscules. |
StrLower | Convertit une chaîne en minuscules. |
StrMove | Déplace un bloc de caractères d'une chaîne sur l'autre. |
StrNew | Alloue une chaîne sur le tas. |
StrPCopy | Copie une chaîne Pascal vers une chaîne à zéro terminal. |
StrPLCopy | Copie une chaîne Pascal vers une chaîne AZT avec une longueur maximum donnée. |
StrPos | Renvoie un pointeur sur la première occurrence d'une sous-chaîne donnée dans une chaîne. |
StrRScan | Renvoie un pointeur sur la dernière occurrence d'un caractère donné dans une chaîne. |
StrScan | Renvoie un pointeur sur la première occurrence d'un caractère donné dans une chaîne. |
StrUpper | Convertit une chaîne en majuscules. |
Routines de traitement de chaînes shortstring (chaîne Pascal)
Fonction | Description |
AdjustLineBreaks | Transforme les ruptures de lignes dans une chaîne en séquences CR/LF. |
AnsiCompareStr | Comparaison, en tenant compte des majuscules/minuscules, de deux chaînes. |
AnsiCompareText | Comparaison, sans tenir compte des majuscules/minuscules, de deux chaînes. |
AnsiLowerCase | Convertit des caractères en minuscules. |
AnsiUpperCase | Convertit des caractères en majuscules. |
CompareStr | Comparaison, en tenant compte des majuscules/minuscules, de deux chaînes. |
CompareText | Comparaison, sans tenir compte des majuscules/minuscules, de deux chaînes. |
Concat | Concatène une suite de chaînes. |
Copy | Renvoie une sous-chaîne d'une chaîne. |
Delete | Efface une sous-chaîne d'une chaîne. |
DisposeStr | Libère une chaîne du tas. |
FmtLoadStr | Charge une chaîne dans la ressource table de chaînes d'un programme. |
Insert | Insère une sous-chaîne dans une chaîne. |
IntToHex | Convertit un entier en hexadécimal. |
IntToStr | Convertit un entier en chaîne. |
IsValidIdent | Renvoie True si la chaîne spécifiée est un identificateur valide. |
Length | Renvoie la longueur dynamique de la chaîne. |
LoadStr | Charge la ressource chaîne depuis le fichier exécutable de l'application. |
LowerCase | Met en minuscule la chaîne spécifiée. |
NewStr | Alloue une nouvelle chaîne dans le tas. |
Pos | Recherche une sous-chaîne dans une chaîne. |
Str | Convertit une valeur numérique en chaîne. |
StrToInt | Convertit une chaîne en entier. |
StrToIntDef | Convertit une chaîne en entier ou à une valeur par défaut. |
Trim | Supprime les espaces de début et de fin et les caractères de contrôle d'une chaîne donnée. |
TrimLeft | Supprime les espaces de début et les caractères de contrôle d'une chaîne donnée |
TrimRight | Supprime les espaces de fin et les caractères de contrôle d'une chaîne donnée. |
UpperCase | Met en majuscule la chaîne spécifiée. |
Val | Convertit une valeur chaîne en sa représentation numérique. |
StringList
Les stringlist permettent de gérer un tableau de phrase. Chaque ligne du tableau peut être accédées grâce à son index.De nombreuses opérations peuvent être effectuées sur les stringlist: insertion, effacement, comparaison...
La création d'une stringlist est très aisée.
lstNom : TStrings; // Déclaration de TStrings au lieu de TStringList //pour des d'utilisations de paramatètres de la vcl. //Création d'une instance de TStringList lstNom := TStringList.Create; //Ajout de chaîne dans la liste lstNom.Add('Paul Smith'); lstNom.Add('Renée'); lstNom.Add('Nicolas'); Nom:=lstNom[2]; //insertion de plage dans la variable nom insert('plage',Nom,3); lstNom[2]:=Nom;
Les routines de traitement peuvent être facilement effectuées sur les stringslist.