Routines couramment utilisées pour les AnsiStrings

De Appmethod Topics
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 (dans System)

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