Indexof: различия между версиями
Tatikoma (обсуждение | вклад) (Новая страница: «== Описание == Функция '''IndexOf''' предназначена для поиска строки в указанном массиве и возвр...») |
Tatikoma (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
== Описание == | == Описание == | ||
Функция '''IndexOf''' предназначена для поиска строки в указанном массиве и возвращает в другой массив индексы найденных элементов. Или же возвращает номер первой строки с найденным элементом (в зависимости от использованного синтаксиса). | Функция '''IndexOf''' предназначена для поиска строки в указанном массиве и возвращает в другой массив индексы найденных элементов. Или же возвращает номер первой строки с найденным элементом (в зависимости от использованного синтаксиса). | ||
− | + | <br>По-умолчанию ищет точное совпадение, регистронезависимо. | |
== Синтаксис == | == Синтаксис == | ||
Привязка к окну: нет. | Привязка к окну: нет. | ||
− | + | <br>Работа со свернутым окном: да. | |
set %result indexOf ( %arr [noabs] [case] [[startRow [EndRow]] count] (text) ) | set %result indexOf ( %arr [noabs] [case] [[startRow [EndRow]] count] (text) ) | ||
или | или | ||
Строка 11: | Строка 11: | ||
Здесь: | Здесь: | ||
− | + | <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. | Если в качестве приемника указана целая переменная ('set #e indexOf...'), то возвращаем номер только одной строки. Причем 'count' указывает какое по порядку вхождение нужно искать. Если элемент с указанным номером не найден, то результат -1. | ||
Строка 45: | Строка 45: | ||
'''2.30''' | '''2.30''' | ||
− | + | <br>добавил поиск строки в массиве. по-умолчанию ищет точное совпадение, регистронезависимо | |
[[Категория:Массивы]] | [[Категория:Массивы]] | ||
[[Категория:Текст]] | [[Категория:Текст]] |
Текущая версия на 10:42, 28 августа 2019
Описание
Функция IndexOf предназначена для поиска строки в указанном массиве и возвращает в другой массив индексы найденных элементов. Или же возвращает номер первой строки с найденным элементом (в зависимости от использованного синтаксиса).
По-умолчанию ищет точное совпадение, регистронезависимо.
Синтаксис
Привязка к окну: нет.
Работа со свернутым окном: да.
set %result indexOf ( %arr [noabs] [case] [[startRow [EndRow]] count] (text) ) или set #res indexOf ( %arr [noabs] [case] [[startRow [EndRow]] count] (text) )
Здесь:
%result - массив-результат, в который записываются индексы найденных элементов
#res - номер первой строки, в которой найден элемент с искомым текстом. (может быть указан только один из двух вариантов: %result или #res )
%arr - массив, в котором ищем
noabs - если указано, то ищем подстроку; иначе- ищем абсолютное совпадение (без учёта регистра)
case - если указано, то при сравнении учитывается регистр символов; иначе - не учитывается
count - максимальное число найденых элементов. Если > 0, то ищем в направлении "с начала", если < 0, то ищем в направлении "с конца". Если не указан, то ищем "все". Этот параметр имеет приоритет в порядке распознавания, над начальной и конечной позицией поиска.
startRow - номер строки, которой начинается поиск (по умолчанию= 1)
endRow - номер строки, которой заканчиваем поиск (по умолчанию= последняя)
count - какое по порядку вхождение нужно искать
text - текст, который нужно найти
Ищет по столбцам. возвращает адреса найденных элементов в формате 'строка|столбец/'. пример: '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
добавил поиск строки в массиве. по-умолчанию ищет точное совпадение, регистронезависимо