|
Описание вспомогательной функции | |
| _ArraySearch | ![]() |
Поиск значения в одномерном или двумерном массиве.
_ArraySearch($var_array,$var_value[,$var_istart=0[,$var_iend=0[,$var_icase=0[,$var_compare=0[,$var_iforward=1[,$var_isubitem=-1]]]]]])
Параметры
| $var_array | Массив для поиска |
| $var_value |
Значение для поиска в массиве (по умолчанию полное соответствие содержимому ячейки) |
| $var_istart |
[необязательный] Индекс массива, от которого начинать поиск |
| $var_iend |
[необязательный] Индекс массива, в котором закончить поиск |
| $var_icase |
[необязательный] Чувствительность к регистру 0 - (по умолчанию) Поиск без учёта регистра 1 - Поиск с учётом регистра |
| $var_compare |
[необязательный] 0 - (по умолчанию) Сравнение с приведением к одному типу, например при $var_icase = 0 эти значения будут являться совпадением: "строка" = 0, "" = 0 или "0" = 0 1 - Частичное совпадение, искомая строка может быть частью строки содержащейся в ячейке массива (StringInStr) 2 - При сравнении учитывать совпадение типа переменной с помощью VarGetType |
| $var_iforward |
[необязательный] Если установлено в 0, то искать в массиве от конца к началу (а не от начала к концу) |
| $var_isubitem |
[необязательный] Индекс колонки для поиска в двумерном массиве |
Возвращаемое значение
| Успех: | Возвращает первый найденный индекс массива, в котором найдено значение $vValue |
| Ошибка: | Возвращает -1, устанавливает @error: |
| @error: | 1 - $var_array не является массивом |
| 2 - Массив $var_array не является одномерным или двумерным массивом | |
| 4 - $var_istart больше $var_iend | |
| 6 - Значение $var_value не найдено в массиве | |
| 7 - Размерность массива $var_array более двух |
См. также
_ArrayFindAll
| Примеры: | Как создать кнопку? |
exect=$var_aa=StringSplit('AAA|BBB|CCC|DDD|EEE|FFF','|',2)||_ArrayDisplay($var_aa)||$var_ii=_ArraySearch($var_aa,'DDD')||MsgBox(4096,'Результат','$var_ii') ;; пример поиска индекса ячейки, в которой находится фраза 'DDD'
exect=$var_a=StringSplit('%%COMMANDER_PATH%%\Bar\000_TCIMG_Test.bar|%%COMMANDER_PATH%%\Bar\084_AU3.bar|%%COMMANDER_PATH%%\Bar\000_TCIMG_Test_Exe.bar','|')||$var_si=EnvGet('COMMANDER_PATH')&'\WinButtonBar.ini'||$var_sb=IniRead('$var_si','Buttonbar','Buttonbar',Null)||$var_i=Number(_ArraySearch($var_a,'$var_sb')+1)||$var_i=($var_i>3~~Or~~$var_i=0)?1:$var_i||IniWrite('$var_si','Buttonbar','Buttonbar','$var_a[$var_i]')||IniWrite('$var_si','Buttonbar','Buttonbar',Execute('$var_a[$var_i]')) ;; записать один из 3-х заданных путей .bar по кругу в WinButtonBar.ini в секцию [Buttonbar]