WIDESTRING |
Chaîne de caractères Unicode |
Delphi/Kylix/Lazarus |
System |
Syntaxe
identv1,identv2,...:WideString;
|
identt2,identt2,...=WideString;
|
Paramètres
Nom |
Description |
identv1, identv2 |
Ce paramètre permet d'indiquer une variable. |
identt2, identt2 |
Ce paramètre permet d'indiquer un type de variable. |
Description
Ce type d'identificateur permet de définir une chaîne de caractères Unicode alloué dynamiquement.
Remarques
- Le WideString est similaire à AnsiString, mais au lieu d'entreposer une chaîne de caractères AnsiChar,
il entrepose une chaîne de caractères Unicode de caractères WideChar (16 bits).
- Le WideString garde une trace de sa longueur et ajoute automatiquement un caractère #0 à la fin de la chaîne de caractères afin que vous puissiez facilement la convertir
en PWideChar.
- En interne, Delphi entrepose un WideString en tant que pointeur vers un enregistrement, sauf que le pointeur pointe réellement vers le membre Data et que
le Length est entreposé dans les quatre octets précédant le pointeur WideString.
- Comme le type de données AnsiString, le Delphi gère automatiquement la mémoire des variables WideString. Contrairement à
AnsiString, WideString n'a pas de décompte de références, de sorte que chaque affectation d'une valeur WideString entraîne une copie
complète de la chaîne de caractères. Ainsi, l'utilisation de WideString est moins efficace que l'utilisation d'AnsiString.
- Le Delphi convertit automatiquement entre AnsiString et WideString, de PWideChar à
WideString et d'un tableau de base zéro de WideChar à WideString.
- Vous pouvez convertir un WideString en PWideChar, ce qui est souvent requis pour appeler les fonctions de l'API de Windows,
mais vous devez faire preuve de la même attention lorsque vous convertissez un AnsiString en PChar.
- Le Delphi libère automatiquement la chaîne de caractères lorsque la chaîne de caractères n'est plus nécessaire, mais cela invalide également le pointeur
PChar ou PWideChar. Tant que rien n'utilise encore le pointeur, tout va bien. Ainsi, vous pouvez utiliser un castre
PWideChar lors de l'appel d'une fonction API, mais n'enregistrez pas le pointeur PWideChar pour une
utilisation future.
- Lors de la conversion d'une WideString en AnsiString, le Delphi utilise la page de codes ANSI et laisse Windows
effectuer la cartographie par défaut pour les caractères non ANSI. Si vous souhaitez plus de contrôle sur le processus de conversion, appelez directement la fonction API de
Windows WideCharToMultiByte.
- Après avoir converti une chaîne de caractères Unicode en chaîne de caractères courte, la chaîne de caractères courte peut contenir des caractères multi-octets. L'unité
SysUtils contient un certain nombre de fonctions pour travailler avec des chaînes de caractères multi-octets.
- La VCL n'utilise pas Unicode. Si vous souhaitez utiliser les contrôles Unicode dans Windows NT, vous devez
créer vos propres composantes ou rechercher des solutions tierces.
Voir également
Langage de programmation - Delphi/Kylix/Lazarus - Référence de procédures et fonctions - AnsiCompareStr
Langage de programmation - Delphi/Kylix/Lazarus - Référence de procédures et fonctions - AnsiLowerCase
Langage de programmation - Delphi/Kylix/Lazarus - Référence de procédures et fonctions - AnsiPos
Langage de programmation - Delphi/Kylix/Lazarus - Référence de procédures et fonctions - AnsiUpperCase
Langage de programmation - Delphi/Kylix/Lazarus - Référence de procédures et fonctions - Concat
Langage de programmation - Delphi/Kylix/Lazarus - Référence de procédures et fonctions - Copy
Langage de programmation - Delphi/Kylix/Lazarus - Référence de procédures et fonctions - Delete
Langage de programmation - Delphi/Kylix/Lazarus - Référence de procédures et fonctions - Length
Langage de programmation - Delphi/Kylix/Lazarus - Référence de procédures et fonctions - Move
Langage de programmation - Delphi/Kylix/Lazarus - Type de données élémentaires - PWideString
Langage de programmation - Delphi/Kylix/Lazarus - Référence de procédures et fonctions - SetLength
Langage de programmation - Delphi/Kylix/Lazarus - Références de mots réservés (mots clefs) - String
Langage de programmation - Delphi/Kylix/Lazarus - Type de données élémentaires - WideChar
Dernière mise à jour : Mercredi, le 18 février 2015