Описание вспомогательной функции


_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 более двух

Функцию можно подключить через команду exect

См. также

_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]


© Аверин Андрей для Total Commander Image  Averin-And@yandex.ru