4D v16.3

Position

Accueil

 
4D v16.3
Position

Position 


 

Position ( àChercher ; laChaîne {; début {; longTrouvée}}{; *} ) -> Résultat 
Paramètre Type   Description
àChercher  Chaîne in Chaîne à rechercher
laChaîne  Chaîne in Chaîne dans laquelle effectuer la recherche
début  Entier long in Position dans laChaîne où débuter la recherche
longTrouvée  Entier long in Longueur de la chaîne trouvée
Opérateur in Si passé : évaluation basée sur les codes de caractères
Résultat  Entier long in Position de la première occurrence de àChercher

Position retourne la position de la première occurrence de àChercher dans laChaîne.

Si laChaîne ne contient pas àChercher, la fonction retourne zéro (0).

Si Position trouve une occurrence de àChercher, la fonction retourne la position du premier caractère de cette occurrence dans laChaîne.
Si vous demandez la position d'une chaîne vide à l'intérieur d'une chaîne vide, Position retourne zéro (0).

Par défaut, la recherche débute au premier caractère de laChaîne. Le paramètre facultatif début vous permet de préciser le caractère auquel doit démarrer la recherche dans laChaîne.

Le paramètre longTrouvée, s'il est passé, retourne la longueur de la chaîne effectivement trouvée par la recherche. Ce paramètre est nécessaire pour pouvoir gérer correctement les lettres pouvant s'écrire à l'aide d'un ou plusieurs caractères (ex : æ et ae, ß et ss...).
A noter que lorsque le paramètre * est passé (cf. ci-dessous), ces lettres ne sont pas considérées comme équivalentes (æ # ae) ; dans ce mode, longTrouvée est toujours égal à la longueur de àChercher (si une occurrence est trouvée).

Par défaut, la commande effectue des comparaisons globales, tenant compte des particularités linguistiques et des lettres pouvant s'écrire avec un ou plusieurs caractères (par exemple æ = ae). En revanche, elle n'est pas diacritique (a=A, a=à...) et ne tient pas compte des caractères "ignorables". Les caractères ignorables comprennent tous les caractères du subset unicode C0 Control (U+0000 à U+001F, ascii character control set) à l'exception des caractères imprimables (U+0009 TAB, U+0010 LF, U+0011 VT, U+0012 FF and U+0013 CR).
Pour modifier ce fonctionnement, passez l'astérisque * en dernier paramètre. Dans ce cas, les comparaisons sont effectuées sur la base des codes des caractères. Vous devez donc passer le paramètre * :

  • si vous souhaitez tenir compte des caractères spéciaux, utilisés par exemple comme délimiteurs (Caractere(1)...),
  • si l'évaluation des caractères doit tenir compte de la casse et des accents (a#A, a#à...).
    A noter que dans ce mode, l'évaluation ne gère pas les variations d'écriture des mots.

Note : Dans certains cas, l'utilisation du paramètre * peut accélérer sensiblement l'exécution de la commande. 

Attention : Vous ne pouvez pas utiliser le caractère joker (@) avec Position. Si, par exemple, vous passez "abc@" dans àChercher, la fonction recherchera effectivement la chaîne "abc@" et non pas "abc suivi de toute valeur".

Les exemples suivants illustrent l'utilisation de Position. Les résultats sont assignés à la variable vRésultat. Les commentaires fournissent la valeur de vRésultat :

 vRésultat:=Position("ll";"Billard") ` vRésultat prend la valeur 3
 vRésultat:=Position(vText1;vText2) ` Position de la première occurrence de vText1 dans vText2
 vRésultat:=Position("day";"Today is the first day";1) ` vRésultat prend la valeur 3
 vRésultat:=Position("day";"Today is the first day";4) ` vRésultat prend la valeur 20
 vRésultat:=Position("DAY";"Today is the first day";1;*) ` vRésultat prend la valeur 0
 vRésultat:=Position("oe";"Nœud";1;$long` vRésultat =2, $long = 1

Dans l'exemple suivant, le paramètre longTrouvée permet de rechercher toutes les occurrences de "fluss" dans un texte, quelle que soit l'orthographe du mot :

 $départ:=1
 Repeat
    vRésultat:=Position("fluss";$letexte;$départ;$longtrouvée)
    $départ:=$départ+$longtrouvée
 Until(vRésultat=0)



Voir aussi  

Opérateurs de comparaison
Substring

 
PROPRIÉTÉS 

Produit : 4D
Thème : Chaînes de caractères
Numéro : 15

Commande(s) éligible(s) à l'exécution dans un process préemptif

 
HISTORIQUE 

Modifié : 4D v11 SQL

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)