Routines couramment utilisées pour les AnsiStrings
Remonter à Utilisation des chaînes
Les routines de gestion des chaînes de SysUtils
gèrent les types UnicodeString et AnsiString. Dans leurs zones fonctionnelles, certaines routines sont utilisées dans le même but mais varient dans l'utilisation de critères particuliers dans leurs calculs.
Sommaire
Les fonctions de l'unité AnsiStrings offrent les mêmes capacités que les routines de l'unité SysUtils. Les fonctions AnsiStrings
fournissent de meilleures performances pour AnsiStrings
que les fonctions SysUtils
, car les fonctions SysUtils
convertissent un AnsiStrings
en un UnicodeString
. Les fonctions AnsiStrings
travaillent seulement avec AnsiStrings
, il n'y a donc pas de conversion.
Les tableaux suivants présentent ces routines en les regroupant selon les catégories suivantes :
Lorsqu'il y a lieu, les tableaux indiquent également si la routine satisfait le critère suivant :
- Différence majuscules/minuscules : Si les paramètres de localisation sont utilisés, ils déterminent la définition des caractères majuscules/minuscules. Si la routine n'utilise pas les paramètres de localisation, les analyses sont fondées sur la valeur scalaire des caractères. Si la routine ne tient pas compte des différences majuscules/minuscules, une fusion logique des caractères majuscules et minuscules déterminée par un modèle prédéfini est effectuée.
- Utilisation des paramètres de localisation : Cela permet de personnaliser votre application pour des localisations spécifiques, en particulier dans le cas des environnements pour les langues asiatiques. Dans la plupart des localisations, les caractères minuscules sont censés être inférieurs aux caractères majuscules correspondants. C'est l'opposé de l'ordre ASCII dans lequel les caractères minuscules sont supérieurs aux caractères majuscules. Les routines qui utilisent la localisation système commencent généralement par Ansi (AnsiXXX).
- Gestion des jeux de caractères multi-octets (MBCS) : les MBCS sont utilisés pour écrire du code pour les localisations extrême-orientales. Les caractères multi-octets sont représentés par un ou plusieurs codes de caractères, le nombre d'octets ne correspond donc pas systématiquement à la longueur de la chaîne. Les routines qui gèrent les MBCS analysent les caractères sur un ou plusieurs octets.
ByteType et StrByteType déterminent si un octet donné est l'octet de tête d'un caractère sur plusieurs octets. Faites attention en manipulant des caractères multi-octets à ne pas tronquer une chaîne en coupant en deux un caractère. Ne transmettez pas de caractères comme paramètre d'une fonction ou d'une procédure, puisque la taille d'un caractère ne peut pas être déterminée à l'avance. Il faut, à la place, transmettre un pointeur sur un caractère ou une chaîne. Pour plus d'informations sur MBCS, voir Permettre au code de l'application de fonctionner pour différentes régions.
Routines de longueur de chaînes
Routine | Utilisation des paramètres de localisation | Gestion MBCS | Renvoie |
---|---|---|---|
oui |
oui |
Nombre d'éléments dans la chaîne. Ne prend pas en compte les "caractères" de paire de substitution MBCS ou Unicode. | |
oui |
oui |
Nombre d'octets nécessaire pour représenter le type ou la variable. |
Sachez que Length
et SizeOf
donnent différents résultats pour toutes les chaînes, à l'exception des chaînes courtes. SizeOf
équivaut au nombre d'octets d'un pointeur, puisque les chaînes non-courtes sont des pointeurs.
Routines de comparaison de chaînes
Routines de conversion majuscules/minuscules
Routine | Utilisation des paramètres de localisation | Gestion MBCS |
---|---|---|
System.AnsiStrings.AnsiLowerCase System.SysUtils.AnsiLowerCase |
oui |
oui |
System.AnsiStrings.AnsiUpperCaseFileName System.SysUtils.AnsiUpperCaseFileName |
oui |
oui |
System.AnsiStrings.AnsiUpperCase System.SysUtils.AnsiUpperCase |
oui |
oui |
non |
non. Travaille pour A à Z seulement, pas pour les caractères accentués européens. | |
non |
non. Travaille pour a à z seulement, pas pour les caractères accentués européens. |
- Remarque : Les routines utilisées pour les noms de fichiers sous forme de chaîne :
AnsiCompareFileName
,AnsiLowerCaseFileName
etAnsiUpperCaseFileName
, utilisent la localisation système. Vous devez toujours utiliser des noms de fichiers portables, car la localisation (le jeu de caractères) utilisée pour les noms de fichiers peut différer de celle de l'interface utilisateur par défaut.
Routines de modification de chaîne
Routine | Sensible à la casse | Gestion MBCS |
---|---|---|
ND |
oui | |
System.AnsiStrings.AnsiQuotedStr System.SysUtils.AnsiQuotedStr |
ND |
oui |
System.AnsiStrings.AnsiReplaceStr System.StrUtils.AnsiReplaceStr |
oui |
oui |
System.AnsiStrings.AnsiReplaceText System.StrUtils.AnsiReplaceText |
non |
oui |
System.AnsiStrings.StringReplace System.SysUtils.StringReplace |
précisé par un indicateur |
oui |
System.AnsiStrings.ReverseString System.StrUtils.ReverseString |
ND |
non |
ND |
non | |
ND |
non | |
oui |
oui | |
ND |
oui | |
ND |
oui | |
ND |
oui | |
ND |
oui |
Routines de sous-chaînes
Routine | Sensible à la casse | Gestion MBCS |
---|---|---|
ND |
oui | |
oui |
oui | |
oui |
oui | |
System.AnsiStrings.IsPathDelimiter System.SysUtils.IsPathDelimiter |
oui |
oui |
System.AnsiStrings.LastDelimiter System.SysUtils.LastDelimiter |
oui |
oui |
ND |
non | |
ND |
non | |
ND |
non | |
non |
non | |
ND |
oui |
Routines d'informations de chaînes
Routine | Renvoie |
---|---|
Page de code | |
Taille d'élément | |
Comptage de références |
- Remarque : La manipulation des structures internes des chaînes est dangereuse car ces structures changent selon les versions des produits.