DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Syntaxe WLangage / Opérateurs
  • 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
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Utilisation
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]]                // Retourne "F"
Texte[[5 Ã€ 10]]           // Retourne "Franci"
Texte[[5 Ã€]]              // Retourne "Francisco"
Texte[[À 10]]              // Retourne "San Franci"
Texte[[10 SUR 4]]          // Retourne "isco"
Texte + " et New York"      // Retourne "San Francisco et New York"
SI Texte [= "San" ALORS Trace(Texte)
Notes

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 contient "San Francisco"

    ChaîneDébut = "San "
    ChaîneFin = "Francisco"
    ChaîneDébut += [ChaîneFin]
    // ChaîneDébut contient "San Francisco"
  • 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 contient "C:\MesFichiers\MonFichier.TXT"

    ChaîneDébut = "C:\MesFichiers"
    ChaîneMilieu = "\"
    ChaîneFin = "\MonFichier.TXT"
    ChaîneDébut += [ChaîneMilieu] + ChaîneFin
    // ChaîneDébut contient "C:\MesFichiers\MonFichier.TXT"

    ChaîneDébut = "C:\MesFichiers"
    ChaîneMilieu = "\"
    ChaîneFin = "MonFichier.TXT"
    ChaîneDébut += [ChaîneMilieu] + ChaîneFin
    // ChaîneDébut contient "C:\MesFichiers\MonFichier.TXT"
  • 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 contient "Tome de programmation"

    ChaîneDébut = "Tome"
    ChaîneFin = " de programmation"
    MaChaîne = [ChaîneDébut] + ChaîneFin
    // ChaîneDébut contient "Tome de programmation"
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 :
La concaténation optionnelle 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.
WEBDEV - Code Navigateur L'opérateur [[ et ]] permet uniquement d'extraire 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.
    WEBDEV - Code Navigateur 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"
// -- Appel de la procédure par la ligne :
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.
// Variables
sChaîne est une chaîne = SAI_HTML
sCaract est une chaîne
i est un entier = 1
// Parcours du champ HTML
sCaract = sChaîne[[i Ã€ i]]
TANTQUE i <= Taille(sChaîne) 
	i++
	// ICI traitement sur sCaract 
	// Caractères suivants
	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 HFSQL, il est nécessaire de configurer les options suivantes lors de la description de la rubrique dans l'analyse :
WEBDEV - Code Navigateur L'opérateur "Égalité très souple" n'est pas disponible en code Navigateur.

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 :
Opérateurs [[ ]] Exemples unitaires (WINDEV) : Opérateurs [[ ]]
[ + ] Utilisation des opérateurs [[ ]] et des différentes syntaxes.
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Opérateurs de comparaison
De nombreux opérateurs de comparaison sont disponibles, mais ne sont pas présentés dans cette page.

Par exemple:
[~~ pour "Commence par" en ignorant les espaces en début de chaîne et la casse
[=] pour "contient"
=] pour "termine par"

Voir la page "Opérateurs de comparaison" :
https://doc.pcsoft.fr/?1512006
=JBO=
23 mai 2023

Dernière modification : 20/06/2024

Signaler une erreur ou faire une suggestion | Aide en ligne locale