Routines couramment utilisées pour les AnsiStrings

De RAD Studio
Aller à : navigation, rechercher

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.

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

System.Length

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.

System.SizeOf

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

Routine Sensible à la casse Utilisation des paramètres de localisation Gestion MBCS

System.AnsiStrings.AnsiCompareStr System.SysUtils.AnsiCompareStr

oui

oui

oui

System.AnsiStrings.AnsiCompareText System.SysUtils.AnsiCompareText

non

oui

oui

System.AnsiStrings.AnsiCompareFileName System.SysUtils.AnsiCompareFileName

non

oui

oui

System.AnsiStrings.AnsiMatchStr System.StrUtils.AnsiMatchStr

oui

oui

oui

System.AnsiStrings.AnsiMatchText System.StrUtils.AnsiMatchText

non

oui

oui

System.AnsiStrings.AnsiContainsStr System.StrUtils.AnsiContainsStr

oui

oui

oui

System.AnsiStrings.AnsiContainsText System.StrUtils.AnsiContainsText

non

oui

oui

System.AnsiStrings.AnsiStartsStr System.StrUtils.AnsiStartsStr

oui

oui

oui

System.AnsiStrings.AnsiStartsText System.StrUtils.AnsiStartsText

non

oui

oui

System.AnsiStrings.AnsiEndsStr System.StrUtils.AnsiEndsStr

oui

oui

oui

System.AnsiStrings.AnsiEndsText System.StrUtils.AnsiEndsText

non

oui

oui

System.AnsiStrings.AnsiEndsStr System.StrUtils.AnsiEndsStr

oui

oui

oui

System.AnsiStrings.AnsiIndexText System.StrUtils.AnsiIndexText

non

oui

oui

System.AnsiStringsAnsiStrings.CompareStr System.SysUtilsSysUtils.CompareStr

oui

non

non

System.AnsiStringsAnsiStrings.CompareText System.SysUtilsSysUtils.CompareText

non

non

non

System.StrUtils.AnsiResemblesText

non

non

non

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

System.AnsiStrings.LowerCase System.SysUtils.LowerCase

non

non. Travaille pour A à Z seulement, pas pour les caractères accentués européens.

System.AnsiStrings.UpperCase System.SysUtils.UpperCase

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 et AnsiUpperCaseFileName, 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

System.SysUtils.AdjustLineBreaks

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

System.AnsiStrings.StuffString System.StrUtils.StuffString

ND

non

System.FillChar

ND

non

System.SysUtils.StrPCopy

oui

oui

System.AnsiStrings.Trim System.SysUtils.Trim

ND

oui

System.AnsiStrings.TrimLeft System.SysUtils.TrimLeft

ND

oui

System.AnsiStrings.TrimRight System.SysUtils.TrimRight

ND

oui

System.SysUtils.WrapText

ND

oui

Routines de sous-chaînes

Routine Sensible à la casse Gestion MBCS

System.SysUtils.AnsiExtractQuotedStr

ND

oui

System.AnsiStrings.AnsiPos System.SysUtils.AnsiPos

oui

oui

System.AnsiStrings.IsDelimiter System.SysUtils.IsDelimiter

oui

oui

System.AnsiStrings.IsPathDelimiter System.SysUtils.IsPathDelimiter

oui

oui

System.AnsiStrings.LastDelimiter System.SysUtils.LastDelimiter

oui

oui

System.StrUtils.LeftStr

ND

non

System.StrUtils.RightStr

ND

non

System.StrUtils.MidStr

ND

non

System.AnsiStrings.QuotedStr System.SysUtils.QuotedStr

non

non

System.StringOfChar

ND

oui

Routines d'informations de chaînes

Routine Renvoie

System.StringCodePage

Page de code

System.StringElementSize

Taille d'élément

System.StringRefCount

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.

Voir aussi