Indexof
Описание
Функция IndexOf предназначена для поиска строки в указанном массиве и возвращает в другой массив индексы найденных элементов. Или же возвращает номер первой строки с найденным элементом (в зависимости от использованного синтаксиса). <br>По-умолчанию ищет точное совпадение, регистронезависимо.
Синтаксис
Привязка к окну: нет. <br>Работа со свернутым окном: да.
set %result indexOf ( %arr [noabs] [case] [[startRow [EndRow]] count] (text) ) или set #res indexOf ( %arr [noabs] [case] [[startRow [EndRow]] count] (text) )
Здесь: <br>%result - массив-результат, в который записываются индексы найденных элементов <br>#res - номер первой строки, в которой найден элемент с искомым текстом. (может быть указан только один из двух вариантов: %result или #res ) <br>%arr - массив, в котором ищем <br>noabs - если указано, то ищем подстроку; иначе- ищем абсолютное совпадение (без учёта регистра) <br>case - если указано, то при сравнении учитывается регистр символов; иначе - не учитывается <br>count - максимальное число найденых элементов. Если > 0, то ищем в направлении "с начала", если < 0, то ищем в направлении "с конца". Если не указан, то ищем "все". Этот параметр имеет приоритет в порядке распознавания, над начальной и конечной позицией поиска. <br>startRow - номер строки, которой начинается поиск (по умолчанию= 1) <br>endRow - номер строки, которой заканчиваем поиск (по умолчанию= последняя) <br>count - какое по порядку вхождение нужно искать <br>text - текст, который нужно найти <br><br>Ищет по столбцам. возвращает адреса найденных элементов в формате 'строка|столбец/'. пример: '3|7/3|8/4|7/4|8/'. Его хорошо понимает команда 'set' для присваивания элементов массива пачкой. Если ничего не найдено, то вернет пустую строку. Если в качестве приемника указана целая переменная ('set #e indexOf...'), то возвращаем номер только одной строки. Причем 'count' указывает какое по порядку вхождение нужно искать. Если элемент с указанным номером не найден, то результат -1.
Примеры
// запишем начальные данные в массив %a set %a[1 1] вася50фф set %a[2 1] андрей50фф set %a[3 1] вася20фйй set %a[1 2] вася50фф set %a[2 2] андрей50фф set %a[3 2] вася20фйй set %result indexOf ( %a noabs (вася) ) // в массиве %a ищем вхождение строки 'вася' без учёта регистра set #sz size(%result) // сохраним в переменной #sz количество строк массива #result for #i 1 #sz // в цикле отобразим индексы всех найденных элементов (хранящиеся в массиве %result) msg Найдено: %result[#i 1] %result[#i 2] // отобразит поочередно: 1 1, затем 3 1, затем 1 2, затем 3 2 end_for end_script
Смотрите также
История развития
2.30 <br>добавил поиск строки в массиве. по-умолчанию ищет точное совпадение, регистронезависимо