Indexof

Материал из UoPilot
Версия от 21:00, 27 августа 2019; Tatikoma (обсуждение | вклад) (Новая страница: «== Описание == Функция '''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>добавил поиск строки в массиве. по-умолчанию ищет точное совпадение, регистронезависимо