Vector_regexIndexOf

Homepage Containers

Searches for the first occurrence, starting with startIndex, for which the specified function's return matches compareRegEx, and returns the index for this element.

foundAt := Vector_regexIndexOf(VectorObject, compareRegEx, startIndex = 1, useFunction = "getValue")

Parameters

VectorObject The Vector object to use for the current operation.
compareRegEx The regular expression to test against.
startIndex The index to start searching from. If omitted, the search starts with the first item.
useFunction

Function whose return is compared. The actual function called is %ClassName%_%useFunction%, with ClassName the class name for the current iteration's object.

If useFunction is the empty string, no function is called, and the object itself is compared.

Return Value

The index for the first matching element, starting with startIndex.

If there is no such element, the function returns 0.


The function's return can be used as a quasi-boolean value; the statement if Vector_regexIndexOf(...) would be true if an element is found, and false otherwise.

Remarks

If VectorObject is NULL (0 or blank), the empty string is returned, to indicate an error.

If an element is unset and useFunction is not the empty string, it will be skipped during the search.

Index values start at 1 and "wrap".

Related

Vector_regexLastIndexOf, Vector_indexOf, Vector_SindexOf

Vector_regexFindMatch, Vector_regexFindLastMatch

Vector_findObject, Vector_firstUnset

Vector

Examples

;Creates a new Vector with the default parameters.
myVector := Vector_new()

;Creates some String objects
aString1 := String_new("Value1")
aString2 := String_new("Value2")
aString3 := String_new("Value1")

;Adds the Strings to myVector
Vector_add(myVector, aString1)
Vector_add(myVector, aString2)
Vector_add(myVector, aString3)

;Searches for "i)value\d" (uses the default function, "getValue").
compareRegEx := "i)value\d"

if foundAt := Vector_regexIndexOf(myVector, compareRegEx, 2)
{
    ;foundAt contains the index for the element.
    MsgBox, % """" . compareRegEx . """ is found at index " foundAt "."
}
else
{
    ;foundAt = 0 (i.e. not found)
    MsgBox, % "Search value was not found."
}

Homepage  |  Containers