Locate and LocateUp (Stringlist functions): Difference between revisions
m (Created page with "page under construction") |
mNo edit summary |
||
Line 1: | Line 1: | ||
{{Template:Stringlist:LocateUp subtitle}} | |||
Both these functions locate a specified string in a <var>Stringlist</var>. | |||
The difference between <var>Locate</var> and <var>LocateUp</var> is the direction of the search: <var>Locate</var> | |||
searches from the starting point in ascending item number order, while <var>LocateUp</var> | |||
searches from the starting point in descending item number order. | |||
Both <var>Find</var> and <var>FindUp</var> return the item number of the <var>Stringlist</var> item | |||
that matches the input <var class="term">string</var>, or they return 0 to indicate no matching items | |||
were found. | |||
==Syntax== | |||
{{Template:Stringlist:Locate syntax}} | |||
{{Template:Stringlist:LocateUp syntax}} | |||
===Syntax terms=== | |||
<table class="syntaxTable"> | |||
<tr><th>%itemNum</th> | |||
<td>A numeric variable which will be set to the item number of the first item in the <var class="term">sl</var> <var>Stringlist</var> that contains the search target string, or it is set to a 0 if no items match the search criterion.</td></tr> | |||
<tr><th>sl</th> | |||
<td>A <var>Stringlist</var> object.</td></tr> | |||
<tr><th>string</th> | |||
<td>The target string to be located. This is a required argument, and it must be no longer than 255 bytes.</td></tr> | |||
<tr><th>start</th> | |||
<td>A number that indicates the item number at which the search is to begin. If this argument is not specified:<ul><li>For <var>Locate</var>, searching begins at the first item in the <var class="term">sl</var> <var>Stringlist</var>. Not specifying the starting item number is subtly different from specifying a starting item number of 1 &emdash; specifying 1 is an error if the <var>stringlist</var> is empty, while no specification simply returns a 0.<li>For <var>LocateUp</var>, searching begins at the last item in the <var class="term">sl</var> <var>Stringlist</var>.</td></tr> | |||
<tr><th>startCol</th> | |||
<td>A number that specifies the starting column of the range of columns within which the target <var class="term">string</var> is searched for. This is an optional argument, and it defaults to 1.</td></tr> | |||
<tr><th>endCol</th> | |||
<td>A number that specifies the ending column of the range of columns within which the target <var class="term">string</var> is searched for. This is an optional argument, and it defaults to 6124. If <var class="term">caseFlag</var> is a non-zero integer, the width of the searched column range is reduced to a maximum of 256.</td></tr> | |||
<tr><th>caseFlag</th> | |||
<td>An indicator for case-insensitive comparisons. If this argument is a non-zero integer, the string comparisons use <var>sl</var> <var>Stringlist</var> item data translated to uppercase (so the search target <var class="term">string</var> should be passed as an uppercase value). This is an optional argument, and it defaults to zero. If it is 1, the width of the searched column range is reduced to a maximum of 256.</td></tr> | |||
</table> | |||
==Usage notes== | |||
<ul> | |||
<li><var>Locate</var> and <var>LocateUp</var> return a 0 if the indicated string is not found, and cancel the request for all other errors.<li>While, under <var class="product">Sirius Mods</var> Version 6.6 and later, <var>Stringlist</var> items can be longer than 6124 bytes long, these function will only look for matches in the first 6124 bytes of any <var>Stringlist</var> item.</ul> | |||
==Examples== | |||
<ol><li>The following code locates a string in columns 31 through 40 of <var>stringlist</var> <code>%list</code>: | |||
<p class="code">%num = %list:locate('Eudaemonic', , 31, 40) | |||
</p> | |||
<li>The following code locates a string anywhere in a <var>Stringlist</var> <code>%list</code> item, searching backwards starting at item 100. | |||
<p class="code"><nowiki>%num = %list:locateUp('Vietnamerica', 100) | |||
</nowiki></p> | |||
</ol> | |||
==See also== | |||
{{Template:Stringlist:LocateUp footer}} |
Revision as of 16:52, 6 April 2011
Locate previous Stringlist item containing string (Stringlist class)
Both these functions locate a specified string in a Stringlist.
The difference between Locate and LocateUp is the direction of the search: Locate
searches from the starting point in ascending item number order, while LocateUp
searches from the starting point in descending item number order.
Both Find and FindUp return the item number of the Stringlist item that matches the input string, or they return 0 to indicate no matching items were found.
Syntax
%itemNum = sl:Locate( string, [[Start=] number], [[StartColumn=] number], - [[EndColumn=] number], [[CaseIndependent=] number], - [[ArbitraryQuote=] number])
%itemNum = sl:LocateUp( string, [[Start=] number], [[StartColumn=] number], - [[EndColumn=] number], [[CaseIndependent=] number], - [[ArbitraryQuote=] number])
Syntax terms
%itemNum | A numeric variable which will be set to the item number of the first item in the sl Stringlist that contains the search target string, or it is set to a 0 if no items match the search criterion. |
---|---|
sl | A Stringlist object. |
string | The target string to be located. This is a required argument, and it must be no longer than 255 bytes. |
start | A number that indicates the item number at which the search is to begin. If this argument is not specified:
|
startCol | A number that specifies the starting column of the range of columns within which the target string is searched for. This is an optional argument, and it defaults to 1. |
endCol | A number that specifies the ending column of the range of columns within which the target string is searched for. This is an optional argument, and it defaults to 6124. If caseFlag is a non-zero integer, the width of the searched column range is reduced to a maximum of 256. |
caseFlag | An indicator for case-insensitive comparisons. If this argument is a non-zero integer, the string comparisons use sl Stringlist item data translated to uppercase (so the search target string should be passed as an uppercase value). This is an optional argument, and it defaults to zero. If it is 1, the width of the searched column range is reduced to a maximum of 256. |
Usage notes
- Locate and LocateUp return a 0 if the indicated string is not found, and cancel the request for all other errors.
- While, under Sirius Mods Version 6.6 and later, Stringlist items can be longer than 6124 bytes long, these function will only look for matches in the first 6124 bytes of any Stringlist item.
Examples
- The following code locates a string in columns 31 through 40 of stringlist
%list
:%num = %list:locate('Eudaemonic', , 31, 40)
- The following code locates a string anywhere in a Stringlist
%list
item, searching backwards starting at item 100.%num = %list:locateUp('Vietnamerica', 100)