La méthode collection.find( ) retourne la première valeur dans la collection pour laquelle nomMéthode retourne Vrai.
Note : Cette méthode ne modifie pas la collection d'origine.
Par défaut, collection.find( ) effectue une recherche dans la totalité de la collection. Optionnellement, vous pouvez passer dans positionDépart un numéro d'élément auquel débuter la recherche.
- Si positionDépart >= taille de la collection (collection.length), la méthode retourne -1 (la recherche n'est pas effectuée).
- Si positionDépart < 0, le paramètre est recalculé comme positionDépart:=positionDépart+length (la fin de la collection est considérée comme point de départ du calcul de la position).
Note : Même si positionDépart est négatif, la recherche est effectuée de la gauche vers la droite. - Si positionDépart = 0, la recherche est effectuée dans l'ensemble de la collection (défaut).
Dans nomMéthode, passez le nom de la méthode à utiliser pour évaluer les éléments de la collection, ainsi que son ou ses paramètre(s) dans param (optionnel). nomMéthode peut effectuer tout test, avec ou sans paramètres. La méthode reçoit un paramètre de type Objet dans $1 et doit retourner true dans $1.result pour le premier élément ayant satisfait aux conditions du test.
nomMéthode reçoit les paramètres suivants :
- dans $1.value : valeur de l'élément à évaluer
- dans $2 : param
- dans $N... : param2...paramN
nomMéthode doit fixer le(s) paramètre(s) suivant(s) :
- $1.result (booléen) : true si la valeur de l'élément correspond aux critères de recherche
- $1.stop (booléen, optionnel) : true pour stopper le rétroappel de méthode. La valeur retournée est la dernière calculée.
Vous souhaitez obtenir le premier élément dont la taille est inférieure à 5 caractères :
Le code la méthode LengthLessThan est :
C_OBJECT($1)
C_LONGINT($2)
If(Value type($1.value)=Is text)
$1.result:=(Length($1.value))<$2
End if
Vous souhaitez trouver un nom de ville dans une collection :
Le code de la méthode FindCity est :
C_OBJECT($1)
C_TEXT($2)
$1.result:=$1.value.name=$2