Die Funktion collection.find( ) gibt den ersten Wert in der Collection zurück, für den der auf jedes Element angewandte MethodenName wahr zurückgibt.
Hinweis: Diese Funktion ändert nicht die ursprüngliche Collection.
collection.find( ) sucht standardmäßig in der gesamten Collection. Optional können Sie in StartAb den Index des Elements übergeben, bei dem die Suche starten soll.
- Ist StartAb >= Länge der Collection, wird -1 zurückgegeben, d.h. die Collection wird nicht durchsucht.
- Ist StartAb < 0, wird es als Versatz vom Ende der Collection gewertet (StartAb:=StartAb+Länge).
Hinweis: Auch wenn StartAb negativ ist, wird die Collection weiterhin von links nach rechts durchsucht. - Ist StartAb = 0, wird die gesamte Collection durchsucht (Standard).
In MethodenName übergeben Sie den Namen der Methode zum Bewerten der Collection Elemente, zusammen mit den Parametern in param (optional). MethodenName kann den Suchlauf mit oder ohne die Parameter durchführen. Diese Methode empfängt einen Parameter Object in $1 und muss $1.result für das erste zutreffende Element auf wahr setzen.
MethodenName empfängt folgende Parameter:
- in $1.value: Elementwert zum Bewerten
- in $2: param
- in $N...: param2...paramN
MethodenName setzt folgende Parameter:
- $1.result (boolean): wahr, wenn der Elementwert zur Suchbedingung passt.
- $1.stop (boolean, optional): wahr, um Aufruf der Methode zu stoppen. Der zurückgegebene Wert ist der letzte bewertete Wert.
Das erste Element mit einer Länge kleiner als 5 erhalten:
Der Code der Methode LengthLessThan lautet:
C_OBJECT($1)
C_LONGINT($2)
If(Value type($1.value)=Is text)
$1.result:=(Length($1.value))<$2
End if
Einen Stadtnamen in der Collection finden:
Der Code der Methode FindCity lautet:
C_OBJECT($1)
C_TEXT($2)
$1.result:=$1.value.name=$2