|
|
|
|
|
- Utilisation
- Notes
- L'opérateur [ et ]
- L'opérateur [[ et ]]
- Égalité souple et égalité très souple
- Opérateurs sur les chaînes de caractères et UNICODE
- Position dans une chaîne de caractères
- Fonctions du WLangage
Opérateurs sur chaînes de caractères
Les chaînes de caractères peuvent être manipulées par des fonctions spécifiques du WLangage ou par les opérateurs +, [[ et ]]. Les opérateurs sur des chaînes de caractères sont : - " + " : Pour concaténer des chaînes
- " [ " et " ] " : Pour concaténer optionnellement des chaînes
- " [[ " et "]]" (double crochets ouvrants et double crochets fermants) : Opérateur d'extraction d'une sous-chaîne
- " = " : Égalité stricte
- " ~= " : Égalité souple
- " ~~ " : Égalité très souple
- " [= " : Commence par
- " [% %]" : Construction dynamique de chaînes. Pour plus de détails, consultez Interpolation de chaînes.
Texte est une chaîne = "San Francisco"
Texte[[5]]
Texte[[5 À 10]]
Texte[[5 À]]
Texte[[À 10]]
Texte[[10 SUR 4]]
Texte + " et New York"
SI Texte [= "San" ALORS Trace(Texte)
L'opérateur [ et ] L'opérateur [ et ] permet de concaténer optionnellement des chaînes. Le séparateur n'est pas concaténé si la chaîne d'origine est une chaîne vide ("") ou si la chaîne d'origine se termine par le séparateur. Quelques exemples : - ChaîneDébut += [ChaîneFin]
ChaîneFin se concatène à ChaîneDébut uniquement si ChaîneDébut ne se termine pas par ChaîneFin. Par exemple :
ChaîneDébut = "San Francisco"
ChaîneFin = "Francisco"
ChaîneDébut += [ChaîneFin]
ChaîneDébut = "San "
ChaîneFin = "Francisco"
ChaîneDébut += [ChaîneFin]
- ChaîneDébut += [ChaîneMilieu] + ChaîneFin
ChaîneMilieu se concatène à ChaîneDébut uniquement si ChaîneDébut ne se termine pas par ChaîneMilieu et si ChaîneFin ne commence pas par ChaîneMilieu. Le séparateur n'est pas concaténé si la chaîne d'origine est une chaîne vide (""). Par exemple :
ChaîneDébut = "C:\MesFichiers\"
ChaîneMilieu = "\"
ChaîneFin = "MonFichier.TXT"
ChaîneDébut += [ChaîneMilieu] + ChaîneFin
ChaîneDébut = "C:\MesFichiers"
ChaîneMilieu = "\"
ChaîneFin = "\MonFichier.TXT"
ChaîneDébut += [ChaîneMilieu] + ChaîneFin
ChaîneDébut = "C:\MesFichiers"
ChaîneMilieu = "\"
ChaîneFin = "MonFichier.TXT"
ChaîneDébut += [ChaîneMilieu] + ChaîneFin
- MaChaîne = [ChaîneDébut] + ChaîneFin
ChaîneDébut se concatène à ChaîneFin uniquement si ChaîneFin ne commence pas par ChaîneDébut. Par exemple :
ChaîneDébut = "Tome"
ChaîneFin = "Tome de programmation"
MaChaîne = [ChaîneDébut] + ChaîneFin
ChaîneDébut = "Tome"
ChaîneFin = " de programmation"
MaChaîne = [ChaîneDébut] + ChaîneFin
Exemples : - Remplissage d'une chaîne avec des éléments séparés par des RC (Retour Chariot). Le séparateur n'est pas concaténé si la chaîne d'origine est une chaîne vide.
ChaîneRes est une chaîne
POUR TOUT Client
ChaîneRes += [RC] + Client.Nom
FIN
- Création d'un chemin de fichier sans se soucier des caractères "\" absents ou présents.
fOuvre(NomRépertoire + ["\"] + NomFichier)
Liste des exemples associés :
|
Exemples unitaires (WINDEV) : La concaténation optionnelle
[ + ] Utilisation de la concaténation optionnelle de chaîne. La concaténation optionnelle permet d'ajouter une chaîne de caractères à la fin d'une autre seulement si elle n'existe pas déjà .
|
L'opérateur [[ et ]] L'opérateur [[ et ]] permet d'extraire et de remplacer une sous-chaîne. Quelques exemples : - CHAINEAEXTRAIRE[[<Position>]]
- CHAINEAEXTRAIRE[[<Position>]] = <Nouvelle chaîne> : Remplace le caractère de la chaîne par la nouvelle chaîne.
La syntaxe ci-dessus n'est pas disponible dans cette version. - CHAINEAEXTRAIRE[[<Début> à <Fin>]]
- CHAINEAEXTRAIRE[[<Début> à ]]
- CHAINEAEXTRAIRE[[Ã <Fin>]]
- CHAINEAEXTRAIRE[[<Début> sur <Nombre>]]
Attention : Si vous utilisez une procédure manipulant les chaînes avec les opérateurs [[]], méfiez-vous de la syntaxe utilisée. Vous pouvez sans le vouloir modifier vos chaînes de caractères. Par exemple, la procédure suivante peut entraîner la modification d'une partie de la chaîne. PROCÉDURE P(sChaîne)
SI sChaîne ALORS sChaîne="5"
p(sVar[[3 À]])
Pour éviter toute modification de la chaîne initiale, il est nécessaire de passer le paramètre par valeur : - soit en utilisant des parenthèses autour du paramètre dans l'appel de la procédure,
- soit en utilisant le mot-clé Local dans l'entête de la procédure.
Différence avec WINDEV 7.5 : - WINDEV : L'opérateur [[]] utilisé avec une valeur négative en seconde borne renvoie une chaîne vide ("").
- WINDEV 7.5 : L'opérateur [[]] utilisé avec une valeur négative en seconde borne renvoie la chaîne complète.
Exemple : Parcours d'une chaîne de caractères, caractère par caractère : SAI_HTML et SAI_TEXTE sont 2 champs de saisie.
sChaîne est une chaîne = SAI_HTML
sCaract est une chaîne
i est un entier = 1
sCaract = sChaîne[[i À i]]
TANTQUE i <= Taille(sChaîne)
i++
sCaract = sChaîne[[i À i]]
FIN
Égalité souple et égalité très souple L'égalité souple (~=) et l'égalité très souple (~~) agissent uniquement sur les chaînes de caractères (sauf les chaînes fixes). Ces opérateurs permettent de : - ne pas différencier les caractères majuscules des caractères minuscules,
- ne pas tenir compte des espaces situés avant et après la chaîne à tester,
- ne pas tenir compte des caractères accentués minuscules,
- ne pas tenir compte des espaces et des ponctuations à l'intérieur des chaînes (égalité très souple uniquement).
Équivalence HFSQL : Pour retrouver l'équivalence à l'égalité très souple lors d'une recherche sur une clé texte dans un fichier de données HFSQL, il est nécessaire de configurer les options suivantes lors de la description de la rubrique dans l'analyse : Opérateurs sur les chaînes de caractères et UNICODE Les opérateurs disponibles sont : - " + " : Pour concaténer des chaînes
- " [ " et " ] " : Pour concaténer optionnellement des chaînes
- " [[ " et " ]] " (double crochets ouvrants et double crochets fermants) : Opérateur d'extraction d'une sous-chaîne
- " [= " : Commence par
Opérateur "+", "[" et "]" Il est possible de concaténer deux chaînes UNICODE. Il n'est pas possible de concaténer une chaîne UNICODE et une chaîne ANSI. Remarque : Si la concaténation de deux chaînes AINSI est affectée à une chaîne UNICODE (et inversement), la conversion sera implicitement réalisée. Opérateur "[[" et "]]" Toutes les syntaxes de l'opérateur [[]] sont disponibles sur les chaînes UNICODE. - Si la chaîne passée en paramètre est au format ANSI, l'opérateur [[]] renvoie le résultat au format ANSI.
- Si la chaîne passée en paramètre est au format UNICODE, l'opérateur [[]] renvoie le résultat au format UNICODE.
- Les paramètres de position et de longueur sont donnés en nombre de caractères.
Remarque : Si le résultat de l'opérateur [[]] sur une chaîne ANSI est affecté à une chaîne UNICODE (et inversement), la conversion sera implicitement réalisée. Position dans une chaîne de caractères - Le premier caractère est en position 1 (et non en position 0).
- La fonction Position retourne la position de départ d'une chaîne de caractères donnée à l'intérieur d'une autre chaîne de caractères.
Fonctions du WLangage Les chaînes de caractères peuvent également être manipulées grâce aux fonctions : Remarque : les opérateurs [[]] sont dans la plupart des cas plus performants que les fonctions WLangage.
Liste des exemples associés :
|
Exemples unitaires (WINDEV) : Opérateurs [[ ]]
[ + ] Utilisation des opérateurs [[ ]] et des différentes syntaxes.
|
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|