FindPreviousItemNumber (Arraylist function)
Return number of matching item (Arraylist class)
FindPreviousItemNumber searches "backward" in the Arraylist to find and return the item number of the previous item that matches a specified criterion. The criterion is supplied by the SelectionCriterion object that is a required FindPreviousItemNumber parameter. If no item satisfies the criterion, the method returns a zero.
Syntax
%number = al:FindPreviousItemNumber( selectionCriterion, [Start= number])
Syntax terms
%number | A numeric variable to return the item number of the item that is located by the search. |
---|---|
al | An Arraylist object. |
selectionCriterion | A SelectionCriterion object, which is a relational expression that is applied to an al item value to determine whether the value satisfies the expression. The expression consists of a function, an operator, and a numeric or string value.
For example, The function in the criterion is a method value (a method or class member name literal, or a method variable) for a method that operates on items of the type specified on the al declaration and that returns a numeric or string value. This is described further in "Specifying a SelectionCriterion's parameters". |
Start | The number of the item before which to begin the search. If the number value of Start is 4, item 3 is the first item considered. The value of Start may be 1 through the number of items in the Arraylist plus one. For a collection of three items, number may be 1, 2, 3, or 4.
The default value for Start is the number of items in the collection plus one; to start from the last item in al. This is an optional, name required, argument; if you specify a value, the parameter name Start is required. |
Usage notes
- If the value of Start is not in the range of 2 through one plus the number of items in the Arraylist, the request is cancelled. If the value of Start is 1, no item can be found and FindPreviousItemNumber returns a zero.
- FindPreviousItemNumber is available in Sirius Mods Version 7.6 and later.
Examples
The following request contains two FindPreviousItemNumber calls: the first, for an Arraylist of strings, starts checking the last item first, by default; the second call, for an Arraylist of float, uses a compound criterion:
begin %al is arraylist of string len 10 %al2 is arraylist of float %al = list('boston', 'belmont', 'brighton', - 'bedford', 'boxford') %al2 = list(111, 29, 0, 93, 77, -345) %sel is object SelectionCriterion for string len 10 %sel2 is object selectioncriterion for float %sel = LT(this, 'boston') %sel2 = OR(GT(this, 100), LT(this, 0)) printText {~} is: {%al:findPreviousItemNumber(%sel)} printtext {~} is: {%al2:findPreviousItemNumber(%sel2, start=6)} end
The result is:
%al:findPreviousItemNumber(%sel) is: 4 %al2:findPreviousItemNumber(%sel2, start=6) is: 1
See also
- FindNextItemNumber is identical to FindPreviousItemNumber except that it searches forward in the Arraylist.