Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com

Accueil

 
4D v19.8
collection.find( )

collection.find( ) 


 

collection.find ( {startFrom ;} nomMéthode {; param {; param2 ; ... ; paramN}} ) -> Résultat 
Paramètre Type   Description
startFrom  Entier long in Index to start the search at
nomMéthode  Texte in Nom de la méthode à appeler pour la recherche
param  Expression in Paramètre(s) à passer à nomMéthode
Résultat  in Première valeur trouvée (Indefinie si non trouvée)

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 :

 C_COLLECTION($col)
 $col:=New collection("hello";"world";4;"red horse";"tim";"san jose")
 $value:=$col.find("LengthLessThan";5) //$value="tim"

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 :

 C_COLLECTION($c)
 $c:=New collection
 $c.push(New object("name";"Cleveland";"zc";35049))
 $c.push(New object("name";"Blountsville";"zc";35031))
 $c.push(New object("name";"Adger";"zc";35006))
 $c.push(New object("name";"Clanton";"zc";35046))
 $c.push(New object("name";"Clanton";"zc";35045))
 $c2:=$c.find("FindCity";"Clanton") //$c2={name:Clanton,zc:35046}

Le code de la méthode FindCity est :

 C_OBJECT($1)
 C_TEXT($2)
 $1.result:=$1.value.name=$2 //name est un nom de propriété d'objet dans la collection



Voir aussi  

collection.findIndex( )

 
PROPRIÉTÉS 

Produit : 4D
Thème : Collections
Numéro : 805258

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

 
PAGE CONTENTS 
 
HISTORIQUE 

Créé : 4D v16 R6

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v19)
4D - Langage ( 4D v19.1)
4D - Langage ( 4D v19.4)
4D - Langage ( 4D v19.5)
4D - Langage ( 4D v19.6)
4D - Langage ( 4D v19.7)
4D - Langage ( 4D v19.8)