Indexof: различия между версиями

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