| FindVariant |
|
|
|
|
long FindVariant( VARIANT *VariantData, // variant containing searched data long NumberOfElements = -1, // number of elements in data sequence long StartingPosition = 0, // starting position of search long Range = -1, // search range long Options = 0 // search options );
FindVariant( VariantData As Variant, // variant containing searched data NumberOfElements As Long = -1, // number of elements in data sequence StartingPosition As Long = 0, // starting position of search Range As Long = -1, // search range Options As SearchOptions = 0 // search options ) As Long
| IXF_FIND_REVERSE | backward search (towards beginning of file). |
StartingPosition always specifies absolute starting position in file regardless of direction of search. The only exception is when this parameter is 0 and Options have IXF_FIND_REVERSE flag set; in such situation search begins from the end of file.
VariantData variant can be a single variable or one dimensional array (possibly with nested subarrays) of one of allowed types: Byte, Integer, Long, Single, Double, String, Boolean, Date, Currency, Decimal and Variant. The array of variants is especially interesting because it allows searching for complex structured data with fields of various types. The only limitation is that all arrays must be one dimensional. As mentioned above, VariantData can contain String data; it should be noted, however, that text in variant is always represented by IXFile as length-prefixed Unicode and search is not case sensitive.
NumberOfElements parameter always specifies total number of elements in data sequence regardless of its structure. It means that if VariantData consists of nested subarrays, NumberOfElements specifies number of elements counted recursively through all subarrays - not elements in most outer array.