Описание функции | |
StringInStr | ![]() ![]() |
Проверяет вхождение подстроки в указанную строку.
StringInStr('string','substring'[,casesense=0[,occurrence=1[,start=1[,count]]]])
Параметры
string | Проверяемая строка. |
substring |
Подстрока для поиска. |
casesense |
[необязательный] Флаг установки чувствительности к регистру написания. 0 = (по умолчанию) не учитывать регистр, используется локальный язык 1 = учитывать регистр 2 = не учитывать регистр, используется основное / быстрое сравнение |
occurrence |
[необязательный] Номер искомого вхождения подстроки в строку. Используйте отрицательное значение параметра для поиска справа. По умолчанию 1 (поиск первого вхождения). |
start |
[необязательный] Начальная позиция поиска, отсчёт от 1. |
count |
[необязательный] Количество символов для поиска. Это ограничивает поиск на участке полной строки. См. примечания. |
Возвращаемое значение
Успех: | Возвращает позицию найденной подстроки. |
Ошибка: | Возвращает 0, если подстрока не найдена. |
Примечания
Нумерация символов в строке начинается с 1.См. также
StringRegExp, StringCompare, StringLeft, StringRight, StringTrimLeft, StringTrimRight, StringLen, StringMid, StringSplit
Примеры: | ![]() |
StringInStr('Это~~строка','ОКА')
exect=StringInStr('Это~~строка','ОКА') GLOBALEXECT<a> ;; проверяет вхождение подстроки в указанную строку
exect=$var_s=ClipGet()||$var_i=StringInStr('$var_s','\')||MsgBox(4096,'Результат','$var_i') GLOBALEXECT<a> ;; пример проверки нахождения в буфере обмена пути или ссылки, проверяется символ "\" , переменная $var_i либо 0 либо число больше 0
exect=$var_s=ClipGet()||$var_i=StringInStr('$var_s','\') <IF> $var_i = 0 <THEN> brwsr=$var_s <ELSE> openf=$var_s||x||explorer<open> <ENDIF> ;; открыть в зависимости содержимого буфера обмена: если ссылка, то в браузере, если путь то в редакторе
exect=$var_a=StringSplit(StringReplace('??%%COMMANDER_PATH%%\TCIMG.exe?~~?openup??|??%%COMMANDER_PATH%%\Utilities\TotalCom\ChoiceEditor\ChoiceEditor.exe??','?',Chr(34)),'|')||$var_sc=EnvGet('COMMANDER_INI')||$var_sp=IniRead('$var_sc','Configuration','Editor',Null)||$var_is=StringInStr('$var_sp','TCIMG')?2:1||IniWrite('$var_sc','Configuration','Editor',$var_a[$var_is]) rstart ;; переключение программы просмотра по F4 с перезагрузкой
exect=$var_i=(StringInStr(FileGetAttrib('%P%N'),'D')~~AND~~FileExists('%P%N'))?1:0||_ViewValues($var_i) ;; проверка: возвращает 1, если под курсором папка, 0 - если файл
exect=$var_i=StringInStr('|jpg|gif|png|','|%E|')?_CmdCm('infbx=InfoBox_TEST1'):_CmdCm('infbx=InfoBox_TEST2') ;; пример проверки 3-х расширений, если под курсором расширение совпадает, то выдаётся сообщение №1, если нет - сообщение №2
exect=$var_ext=##<info=o71%P%N//>||$var_i=StringInStr('ini|db|dll','$var_ext')?_CmdCm('infbx=InfoBox_TEST1'):_CmdCm('infbx=InfoBox_TEST2') ;; пример условия проверки расширения файла под курсором
forpgs slist=[tc=AM] <FOR> 1 <TO> GLOBALSLIST<0> exect=$var_ext=##<info=o71GLOBALSLIST<:INDEX:>>||$var_i=StringInStr('ini|db|dll','$var_ext')?_CmdCm('rends=x¦¦##rndm<3-|10><¤>wends=@<**info=o75GXLOBALSLIST<:INDEX:>><**info=o73GXLOBALSLIST<:INDEX:>>-GXLOBALRENDS<1>.zip<¤>start=RAR¦¦-IBCK¦¦a¦¦-m5¦¦-ms¦¦-cfg-¦¦-s¦¦-rr3p¦¦GXLOBALWENDS<1>¦¦<**info=o73GXLOBALSLIST<:INDEX:>>¦¦&&wait<¤>renmm=GXLOBALWENDS<1>¦¦##<**info=f1GXLOBALWENDS<1>|1>'):_CmdCm('start=RAR¦¦-IBCK¦¦a¦¦-m5¦¦-ms¦¦-cfg-¦¦-s¦¦-rr3p¦¦<**info=o75GXLOBALSLIST<:INDEX:>><**info=o73GXLOBALSLIST<:INDEX:>>-<info=s47>.zip¦¦<**info=o73GXLOBALSLIST<:INDEX:>>¦¦&&wait') <NEXT> tcimg=$cm540 ;; упаковать все файлы с расширением ini, db или dll в отдельный архив с именем хеш суммы, а остальные файлы в архивы с исходным именем + дата в активную панель и 3% на восстановление
exect=$var_n=3||$var_i=StringInStr('1|2|5',$var_n)?_CmdCm('infbx=InfoBox_TEST1'):_CmdCm('infbx=InfoBox_TEST2') ;; пример проверки условий с помощью
sends=>s85AkelPad.exe <IF> Execute(StringInStr('GLOBALSENDS<1>','Name.txt')) > 0 <THEN> infbx=InfoBox_TEST1 <ENDIF> ;; если в AkelPad активный документ Name.txt, то выдать сообщение
<IF> Execute(StringInStr('<info=s85AkelPad.exe>','Name.txt')) > 0 <THEN> infbx=InfoBox_TEST1 <ENDIF> ;; если в AkelPad активный документ Name.txt, то выдать сообщение
sends=4 <IF> Execute(StringInStr('1|2|4|5','GLOBALSENDS<1>')) > 0 <THEN> GLOBALSENDS<a> <ENDIF> ;; пример проверки сразу нескольких значений
sends=2 <IF> Execute(StringInStr('|2|222|24|82|','|GLOBALSENDS<1>|')) > 0 <THEN> GLOBALSENDS<a> <ENDIF> ;; пример проверки сразу нескольких значений
arr2d=%WL||46|0|StringInStr(FileGetAttrib('::'),'D')>0 GLOBALARR2D<a> ;; из выделенных объектов получить только папки
arr2d=%P%N||46|0|StringInStr('::','если')>0 GLOBALARR2D<a> ;; из файла под курсором получить в массиве строки, которые включают в себя слово "если" (без учёта регистра)
arr2d=%P%N||46|0|StringInStr('::','если',1)>0 GLOBALARR2D<a> ;; из файла под курсором получить в массиве строки, которые включают в себя слово "если" (учитывая регистр)
arr2d=%P%N||46|0|StringInStr('::','если')=0 GLOBALARR2D<a> ;; из файла под курсором получить в массиве строки, которые не включают в себя слово "если" (без учёта регистра)
arr2d=%P%N||46|0|StringInStr('::','если',1)=0 GLOBALARR2D<a> ;; из файла под курсором получить в массиве строки, которые не включают в себя слово "если" (учитывая регистр)
arr2d=%P%N||46|0|StringInStr('::','cliptext')>0 GLOBALARR2D<a> ;; из файла под курсором получить в массиве строки, в которых есть фраза из буфера обмена (без учёта регистра)
arr2d=%P%N||46|0|StringInStr('::','cliptext',1)>0 GLOBALARR2D<a> ;; из файла под курсором получить в массиве строки, в которых есть фраза из буфера обмена (учитывая регистр)