FindPreviousItemNumber (Arraylist function): Difference between revisions
m (1 revision) |
mNo edit summary |
||
(22 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{Template:Arraylist:FindPreviousItemNumber subtitle}} | {{Template:Arraylist:FindPreviousItemNumber subtitle}} | ||
<var>FindPreviousItemNumber</var> searches "backward" in the <var>Arraylist</var> to find and return the item number of the previous item that matches a specified criterion. The criterion is supplied by the <var>[[SelectionCriterion class|SelectionCriterion]]</var> object that is a required <var>FindPreviousItemNumber</var> parameter. If no item satisfies the criterion, the method returns a zero. | |||
the item number of the | |||
The criterion is supplied by the [[SelectionCriterion class|SelectionCriterion]] object | |||
that is a required <var>FindPreviousItemNumber</var> parameter. | |||
If no item satisfies the criterion, | |||
the method returns a zero. | |||
==Syntax== | ==Syntax== | ||
{{Template:Arraylist:FindPreviousItemNumber syntax}} | {{Template:Arraylist:FindPreviousItemNumber syntax}} | ||
===Syntax terms=== | ===Syntax terms=== | ||
<table class="syntaxTable"> | <table class="syntaxTable"> | ||
<tr><th | <tr><th>%number</th> | ||
<td>A numeric variable to | <td>A numeric variable to return the item number of the item that is located by the search. </td></tr> | ||
<tr><th | |||
<tr><th>al</th> | |||
<td>An <var>Arraylist</var> object. </td></tr> | <td>An <var>Arraylist</var> object. </td></tr> | ||
<tr><th> | |||
<td>A <var>SelectionCriterion</var> object, which is a relational expression that is applied to an | <tr><th>selectionCriterion</th> | ||
<td>A <var>SelectionCriterion</var> object, which is a relational expression that is applied to an <var class="term">al</var> item value to determine whether the value satisfies the expression. The expression consists of a function, an operator, and a numeric or string value. | |||
<p> | |||
<tr><th>< | For example, <code>GT(this, -11)</code> is the criterion <code>this > -11</code>, where <var class="term">this</var> is an identity function that simply returns the item's value. The item number of the first item tested by <var>FindPreviousItemNumber</var> that satisfies this expression is the method's return value.</p> | ||
<td>The number of the item | <p> | ||
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 <var class="term">al</var> declaration and that returns a numeric or string value. This is described further in [[SelectionCriterion class#Specifying a SelectionCriterion's parameters|"Specifying a SelectionCriterion's parameters"]].</p></td></tr> | |||
<tr><th><var>Start</var></th> | |||
<td>The number of the item <b><i>before</i></b> which to begin the search. If the <var class="term">number</var> value of <var>Start</var> is 4, item 3 is the first item considered. The value of <var>Start</var> may be 1 through the number of items in the <var>Arraylist</var> plus one. For a collection of three items, <var class="term">number</var> may be 1, 2, 3, or 4. | |||
<p> | |||
The default value for <var>Start</var> is the number of items in the collection plus one; to start from the last item in <var class="term">al</var>.</p> | |||
<p> | |||
This is an optional, [[Notation conventions for methods#Named parameters|name required]], argument; if you specify a value, the parameter name <var>Start</var> is required.</p></td></tr> | |||
</table> | </table> | ||
==Usage notes== | ==Usage notes== | ||
<ul> | <ul> | ||
<li>If the value of Start is not in the range of 2 through one plus the number | <li>If the value of <var>Start</var> is not in the range of 2 through one plus the number of items in the <var>Arraylist</var>, the request is cancelled. If the value of <var>Start</var> is 1, no item can be found and <var>FindPreviousItemNumber</var> returns a zero. | ||
of items in the <var>Arraylist</var>, the request is cancelled. | |||
If the value of Start is 1, no item can be found and | <li><var>FindPreviousItemNumber</var> is available in <var class="product">[[Sirius Mods|Sirius Mods]]</var> Version 7.6 and later. | ||
<li> | |||
</ul> | </ul> | ||
==Examples== | ==Examples== | ||
The following request contains two <var>FindPreviousItemNumber</var> calls: the first, for an <var>Arraylist</var> of strings, starts checking the last item first, by default; the second call, for an <var>Arraylist</var> of float, uses a compound criterion: | |||
<p class="code">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 class|SelectionCriterion]] for string len 10 | |||
%sel2 is object selectioncriterion for float | |||
%sel = LT(this, 'boston') | |||
%sel2 = OR(GT(this, 100), LT(this, 0)) | |||
[[PrintText statement|printText]] {~} is: {%al:findPreviousItemNumber(%sel)} | |||
printtext {~} is: {%al2:findPreviousItemNumber(%sel2, start=6)} | |||
end | |||
</p> | |||
The result is: | |||
<p class="output">%al:findPreviousItemNumber(%sel) is: 4 | |||
%al2:findPreviousItemNumber(%sel2, start=6) is: 1 | |||
</p> | |||
==See also== | |||
<ul><li><var>[[FindNextItemNumber (Arraylist function)|FindNextItemNumber]]</var> is identical to <var>FindPreviousItemNumber</var> except that it searches forward in the <var>Arraylist</var>.</ul> | |||
{{Template:Arraylist:FindPreviousItemNumber footer}} | |||
< | |||
Latest revision as of 23:35, 9 August 2012
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.