Fonctions de chaîne
Cette section contient de brèves descriptions des fonctions qui s'appliquent aux valeurs de chaîne.
Fonction | Action |
---|---|
convert | Convertit une chaîne dans un autre type de données ou convertit un autre type de données en une chaîne. |
decode | Reconvertit une expression de chaîne codée en son expression de chaîne d'origine. |
encode | Convertit une expression de chaîne en une chaîne texte sans signification. |
hex | Convertit un littéral chaîne contenant des codes de caractère hexadécimal en une chaîne ASCII. |
in_set | Renvoie la valeur booléenne true si une chaîne est entièrement composée de caractères d'une autre chaîne. |
is_number | Renvoie la valeur booléenne true si le résultat d'une expression de chaîne est une valeur de type entier ou flottant. |
is_time | Renvoie la valeur booléenne true si le résultat d'une expression de chaîne est une valeur temporelle valide. |
len | Renvoie la longueur d'une chaîne. |
Convertit les caractères d'une chaîne en minuscules ou en majuscules. | |
Supprime les blancs ou des caractères spécifiés au début (ltrim), à la fin (rtrim) ou aux deux extrémités (trim) d'une chaîne. | |
max | Renvoie la plus grande valeur d'une liste d'expressions de tout type de données pris en charge. |
min | Renvoie la plus petite valeur d'une liste d'expressions de tout type de données pris en charge. |
numbertostring | Convertit une expression de type nombre entier ou flottant en une expression de chaîne avec un masque spécifié. |
repeat | Crée une chaîne en répétant une autre chaîne un nombre de fois spécifié. |
strins | Insère une chaîne dans une autre chaîne à un emplacement spécifié. |
strloc | Renvoie la position de départ d'une sous-chaîne dans une chaîne. Si la sous-chaîne est introuvable, la fonction renvoie la valeur 0. |
stringtotime | Convertit une expression de chaîne en expression de temps avec un masque spécifié. |
substitute | Remplace une sous-chaîne par une autre sous-chaîne dans une chaîne. |
substr | Renvoie une sous-chaîne sur la base d'une position et d'une longueur indiquées. |
timetostring | Convertit une expression de temps en expression de chaîne avec un masque spécifié. |
translate | Remplace des caractères dans une chaîne. |
xmlencode | Convertit une zone XML en expression de chaîne. |
xmldecode | Convertit une expression de chaîne en chaîne XML. |
hex
Cette fonction convertit un littéral chaîne contenant des codes de caractère hexadécimal en une chaîne ASCII. La fonction hex peut exprimer n'importe quel caractère mais elle s'utilise habituellement pour les caractères qui n'ont pas de représentation ASCII, par exemple les tabulations.
hex (hex_codes)
où
hex_codes est un littéral chaîne contenant le code hexadécimal d'un caractère ou d'une série de caractères.hex ("616263")
translate
Cette fonction crée une nouvelle chaîne en remplaçant des caractères dans une chaîne par d'autres caractères que vous indiquez. La fonction translate permet notamment de coder des caractères.
translate (source_string, search_string,
replace_string)
où :Paramètre | Description |
---|---|
source_string | Chaîne contenant les caractères à remplacer. |
search_string | Chaîne de caractères à remplacer dans source_string. La longueur de cette chaîne doit être identique à celle de replace_string. |
replace_string | Chaîne contenant les caractères de remplacement. La longueur de cette chaîne doit être identique à celle de search_string. |
L'opération de recherche et remplacement se fait caractère par caractère. Si la chaîne de recherche contient "abc" et la chaîne de remplacement contient "def", la fonction remplace "a" par "d", "b" par "e" et "c" par "f" dans la nouvelle chaîne.
source_string contient "*123-#44-!999"
search_string contient "#*!-"
replace_string contient "XYZ&"
la fonction génère la chaîne suivante :Y123&X44&Z999
Notez que le contenu de la chaîne source, de la chaîne de recherche et de la chaîne de remplacement ne change pas.
translate (str, ".,", ",.")
lower, upper
lower (string_exp)
upper (string_exp)
où string_exp est l'expression de chaîne à convertir.in_set
Cette fonction compare deux chaînes et renvoie la valeur booléenne true si chaque caractère de la première chaîne apparaît aussi quelque part dans la deuxième chaîne. Si au moins un des caractères contenus dans la première chaîne n'apparaît pas dans la deuxième chaîne, la fonction renvoie la valeur false. Les caractères ne doivent pas nécessairement apparaître dans le même ordre dans les deux chaînes et la deuxième chaîne peut contenir des caractères supplémentaires.
in_set (subset_string, superset_string)
où :Paramètre | Description |
---|---|
subset_string | Expression de chaîne qui contient uniquement les caractères du sous-ensemble. |
superset_string | Expression de chaîne avec laquelle la chaîne subset_string est comparée. |
in_set (name, "abcdefghijklmnopqrstuvwxyz")
la fonction renvoie True si name = "jim"
mais False si
name = "Fido"
ou name = "a.b"
len
len (string_expr)
où
string_expr est l'expression de chaîne dont la longueur est calculée.len ("Hamilton Burger")
repeat
repeat (string_expr, repeat_num)
où :Paramètre | Description |
---|---|
string_expr | Expression de chaîne à répéter. |
repeat_num | Nombre de répétitions de la chaîne string_exp. |
repeat ("abcd", 5)
strloc
Une sous-chaîne est une partie d'une chaîne source qui peut être inférieure ou égale à la longueur de la chaîne source. Par exemple, Good, Morn, od Morni, et Good Morni sont des sous-chaînes de la chaîne Good Morning.
Utilisez la fonction strloc pour rechercher à quel endroit une sous-chaîne donnée apparaît dans une chaîne source. Cette fonction renvoie la position du premier caractère de la sous-chaîne dans la chaîne source.
Si la sous-chaîne est localisée plusieurs fois dans la chaîne source, la fonction renvoie la position de départ de la première occurrence. Si la sous-chaîne est introuvable, ou qu'elle est plus longue que la chaîne source, la fonction renvoie la valeur 0.
strloc (source_string, sub_string)
où :Paramètre | Description |
---|---|
source_string | Chaîne dans laquelle la fonction doit rechercher la sous-chaîne. |
sub_string | Sous-chaîne à rechercher. |
strloc ("Good Morning", "Morning")
substr
Cette fonction extrait une sous-chaîne d'une chaîne source, qui crée une nouvelle chaîne. Vous devez indiquer la chaîne source et l'emplacement du caractère où l'extraction doit commencer. De plus, vous pouvez aussi indiquer le nombre de caractères à extraire. A défaut, l'extraction s'arrête à la fin de la chaîne source.
substr (source_string, start_pos {, length})
où :Paramètre | Description |
---|---|
source_string | Chaîne source. |
start_pos | Position du caractère à partir duquel l'extraction commence. |
length | Nombre de caractères à extraire (par exemple, la longueur de la chaîne extraite). |
substr ("Good Morning!", 6, 7)
Cette fonction peut également extraire les chaînes de longueur nulle (les chaînes sans caractères entre les parenthèses) à une position située au delà de la longueur d'une chaîne. Cette faculté est intéressante pour les algorithmes qui utilisent des chaînes de longueur nulle comme conditions auxiliaires. Vous pouvez extraire les caractères placés entre la position 1 et la position du dernier caractère de la chaîne +1. Dans ce cas, la position 1 et la longueur de la chaîne +1 forment des conditions auxiliaires.
Une erreur d'exécution se produit dans les cas suivants :
- La position de départ est inférieure à 1 ou supérieure à la longueur de la chaîne source + 1.
- La longueur spécifiée va générer une sous-chaîne d'une longueur supérieure à celle des caractères restants dans la chaîne source (start_pos + longueur > len (source_string) + 1).
strins
strins (source_string, insert_string, start_pos)
où :Paramètre | Description |
---|---|
source_string | Chaîne à combiner avec la chaîne à insérer (insert_string) pour créer une nouvelle chaîne. |
insert_string | Chaîne à insérer dans la chaîne source (source_string) pour créer une nouvelle chaîne. |
start_pos | Position dans la chaîne source où doit commencer l'insertion. Cette valeur est comprise entre 1 et la longueur de source_string + 1. Une erreur d'exécution se produit si vous indiquez une valeur inférieure à 1 ou supérieure à source_string + 1. |
insert_str = "Mr. Jones,"
et que
source_str = "Good morning, what a lovely day."
strins (source_str, insert_str, 15)
Good morning, Mr. Jones, what a lovely day.
substitute
substitute (source_string, unwanted_string,
replacement_string)
où :Paramètre | Description |
---|---|
source_string | Chaîne qui contient la sous-chaîne unwanted_string. |
unwanted_string | Sous-chaîne de la chaîne source_string. |
replacement_string | Chaîne qui remplacera la sous-chaîne unwanted_string pour créer la nouvelle chaîne. |
substitute (TestString, "abc", "wxyz")
TestString = "abcdabcd"
la fonction renvoie la chaîne suivante :wxyzdwxyzd
Notez que le contenu de la chaîne source, de la chaîne unwanted_string et de la chaîne de remplacement ne change pas.ltrim, rtrim et trim
Ces fonctions créent une nouvelle chaîne en copiant une chaîne source existante et en supprimant les blancs ou des caractères spécifiés au début (ltrim), à la fin (rtrim) ou aux deux extrémités (trim) dans la nouvelle chaîne. Dans tous les cas, la chaîne source reste inchangée.
ltrim (string_expr{, trim_char}opt)
rtrim (string_expr{, trim_char}opt)
trim (string_expr{, trim_char}opt)
où :Paramètre | Description |
---|---|
string_expr | Expression de chaîne source à copier. |
trim_char | Paramètre facultatif qui indique les caractères à supprimer dans la nouvelle chaîne. Si vous n'indiquez pas ce paramètre, les blancs sont supprimés. Selon la fonction utilisée, la suppression débute au commencement, à la fin ou aux deux extrémités de la nouvelle chaîne et continue jusqu'à ce qu'un caractère non spécifié dans trim_char apparaisse (ou un caractère non vide). |
LastName = "Smith"
et la nouvelle chaîne renvoyée est
"Smith"
ltrim (LastName)
Status = "OpenXY&Z&&&&"
la nouvelle chaîne renvoyée est
"OpenXY&Z"
rtrim (Status, "&")
rtrim (AccountName, "0123456789")
is_number
Cette fonction détermine si l'expression de chaîne indiquée génère une valeur entière ou flottante. La fonction is_number renvoie la valeur booléenne true si toute la chaîne (pas seulement une sous-chaîne) génère une valeur entière ou flottante. Elle renvoie false dans le cas contraire.
is_number (expr)
où
expr est une expression de chaîne.is_number ("123.4")
is_number ("no")
is_number ("abc63j")
is_time
Cette fonction détermine si l'expression de chaîne indiquée génère une valeur temporelle d'un format spécifié. La fonction is_time renvoie la valeur booléenne true si toute la chaîne (pas seulement une sous-chaîne) génère une valeur temporelle formatée comme indiqué. Elle renvoie false dans le cas contraire.
is_time (str_expr, date_time_mask)
où :Paramètre | Description |
---|---|
str_expr | Expression de chaîne. |
date_time_mask | Masque de date/heure qui spécifie le format que str_expr doit utiliser pour que la fonction is_time renvoie la valeur true. |
is_time ("nov121995", "mm/dd/yyyy")
is_time ("11/12/1995", "mm/dd/yyyy")
timetostring
timetostring (time_expr, date_time_mask)
où :Paramètre | Description |
---|---|
time_expr | Expression de type temporel. |
date_time_mask | Masque de date/heure qui détermine le format de la sortie de la fonction timetostring. |
timetostring (systemtime(), "mm/dd/yyyy hh:tt:ss am")
7/1/1985 12:45:06 pm
Voir les informations sur la fonction systemtime().
stringtotime
stringtotime (string_expr, date_time_mask)
où :Paramètre | Description |
---|---|
string_expr | Expression de type chaîne. |
date_time_mask | Masque de date/heure qui spécifie le format horaire à utiliser pour la conversion. |
stringtotime (HostTime, "mon. dd, yyyy hh:tt:ss am")
HostTime = "Jul. 1, 1985 12:45:06 pm"
le résultat est la valeur temporelle équivalente au 1er juillet 1985 à 12h45 et 6 secondes.encode, decode
Ces fonctions permettent de convertir des chaînes en chaînes sans signification afin de masquer leur contenu. Les deux fonctions, encode et decode, doivent appartenir au même flux de travaux.
encode (string_expr)
decode (string_expr)
où :Paramètre | Description |
---|---|
string_expr | Expression de type chaîne. La chaîne ne peut pas être un littéral. |