Aller au contenu principal
Version: Next

Find in array

Find in array ( tableau ; valeur {; départ} ) -> Résultat

ParamètreTypeDescription
tableauTableau🡒Tableau dans lequel effectuer la recherche
valeurExpression🡒Valeur de même type à rechercher dans le tableau
départEntier long🡒Elément à partir duquel commencer la recherche
RésultatEntier long🡐Numéro du premier élément trouvé correspondant à valeur

Description

Find in array retourne le numéro du premier élément de tableau qui correspond à valeur.

Find in array peut être utilisé avec des tableaux de type Texte, Numérique, Date, Pointeur, Objet et Booléen. Les paramètres tableau et valeur doivent être du même type.

valeur doit correspondre exactement à l'élément recherché (les mêmes règles que pour l'opérateur d'égalité sont mises en oeuvre, voir Opérateurs basiques). Si aucun élément n'est trouvé, Find in array renvoie -1.

Note : Avec les tableaux d'objets, vous ne pouvez utiliser que des références d'objets dans le paramètre valeur.

Si départ est spécifié, Find in array commence la recherche à l'élément spécifié par départ. Si départ n'est pas spécifié, Find in array commence la recherche à l'élément 1.

Exemple 1

La méthode projet suivante efface tous les éléments vides du tableau alpha ou texte passé en paramètre :

  // Méthode projet NETTOYER TABLEAU
  // NETTOYER TABLEAU ( Pointeur )
  // NETTOYER TABLEAU ( -> Tableau Texte ou Alpha )
 
 var $1 : Pointer
 Repeat
    $vlElem:=Find in array($1->;"")
    If($vlElem>0)
       DELETE FROM ARRAY($1->;$vlElem)
    End if
 Until($vlElem<0)

Une fois que cette méthode projet est implémentée dans votre base, vous pouvez écrire, par exemple :

 ARRAY TEXT(TabValeurs;...)
  // ...
  // Use le tableau comme vous voulez
  // ...
  // Eliminer les éléments chaînes vides
 NETTOYER TABLEAU(->TabValeurs)

Exemple 2

La méthode projet suivante sélectionne le premier élément d'un tableau dont le pointeur passé comme premier paramètre correspond à la valeur de la variable ou du champ dont le pointeur est passé en second paramètre :

  // Méthode projet SELECTIONNER ELEMENT
  // SELECTIONNER ELEMENT ( Pointeur ; Pointeur)
  // SELECTIONNER ELEMENT ( -> Tableau Texte ou Alpha ; -> Champ ou variable de type Texte ou Alpha )
 
 $1->:=Find in array($1->;$2->)
 If($1->=-1)
    $1->:=0 // Si aucun élément n'est trouvé, fixer le tableau à aucun élément sélectionné
 End if

Une fois que cette méthode projet est implémentée dans la base, vous pouvez écrire, par exemple :

  // Méthode objet du pop-up menu TabTitres
 Case of
    :(Form event code=On Load)
       SELECTIONNER ELEMENT(->TabTitres;->[Personnes]Titre)
 End case

Note : Cet exemple utilise l'élément sélectionné du tableau. Gardez à l'esprit que l'élément sélectionné ne sera pas significatif si le tableau comporte plus de 32767 éléments (cf. section Tableaux et objets de formulaire). Il est dans ce cas nécessaire d'utiliser une variable entier long pour stocker le résultat de Find in array.

Exemple 3

Vous voulez trouver une référence d'objet :

 ARRAY OBJECT($objects;100)
 $o1:={a10;b"xyz"}
 $o2:={a10;b"xyz"}
 
 $objects{20}:=$o1
 var $p : Integer
 
 $p:=Find in array($objects;$o1) //$p = 20 
 $p:=Find in array($objects;$o2) //$p = -1 
 $p:=Find in array($objects;{a10;b"xyz"}) //$p = -1

Voir aussi

Count in array
DELETE FROM ARRAY
Find in sorted array
INSERT IN ARRAY
Size of array