Описание функции


Execute

Выполняет выражение.

Execute('string')

Параметры

string строка, представляющая собой выражение, которое необходимо выполнить.

Возвращаемое значение

Успех:Возвращает значение выполненного выражения.
Ошибка:Возвращает "" (пустая строка) и устанавливает значение @error не равным 0.

Примечания

Может возвращать "inf" (infinity - бесконечность) при невозможности вычисления, к примеру Execute('25^250')

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

См. также

Assign, Eval

Примеры:
 Как создать кнопку?


exect=$var_i=Execute(ClipGet())||MsgBox(4096,'Результат','$var_i') bufsr=##$var_i ;; выполнить математическое выражение в буфере обмена, к примеру: (1+2)*3+2^3

exect=$var_i=Execute(ClipGet()+1)||MsgBox(4096,'Результат','$var_i') bufsr=##$var_i ;; прибавить к числу в буфере обмена единицу

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]

anf2d=PS<"%p"//1//0//*.jpg|*.tiff>||1||##Number(Execute('<info=i119::|?Fdel1//#<//o30::>'));;?V arr2d=$GLOBALANF2D||21|1|^0$||6|1 marks=$GLOBALARR2D ;; выделить в активной панели файлы JPG и TIFF с отличающимися "Дата съемки" и "Дата создания"
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=%P%N??-1 exect=$var_i=Execute(GLOBALSENDS<1>+2) textt=%P%N||#L$var_i:-1 ;; в файле под курсором удалить первую строку + удалить следом идущие количество строк прописанные в первой строке

vends=x||?V|##|Execute(StringRegExpReplace('3453645567567785675467456','(.)','$1+')&0) GLOBALVENDS<a> ;; суммировать цифры заданного числа

vends=x||?V|##|Execute(StringRegExpReplace('3453645567567785675467456','(..)','$1+')&0) GLOBALVENDS<a> ;; суммировать цифры (по два) заданного числа

vends=x||?V|##|Execute(StringRegExpReplace('3453645567567785675467456','(...)','$1+')&0) GLOBALVENDS<a> ;; суммировать цифры (по три) заданного числа

vends=x||?V|##|Execute(StringRegExpReplace(ClipGet(),'(.)','$1+')&0) GLOBALVENDS<a> ;; суммировать номера числа из буфера обмена

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> ;; пример проверки сразу нескольких значений

sends=4,5,6,7??-8, <FOR> 1 <TO> GLOBALSENDS<0> exect=$var_i=Execute('GLOBALSENDS<:INDEX:>'+10) cends=$GLOBALEXECT??:INDEX: <NEXT> GLOBALCENDS<a> ;; увеличить цифры на 10

sends=4,5,6,7??-8, <FOR> 1 <TO> GLOBALSENDS<0> exect=$var_i=Execute($GLOBALSENDS[:INDEX:]+10) cends=$GLOBALEXECT??:INDEX: <NEXT> GLOBALCENDS<a> ;; увеличить цифры на 10

sends=4,5,6,7!!-8, <FOR> 1 <TO> GLOBALSENDS<0> exect=$var_i=Execute($GLOBALSENDS[:INDEX:]+10) cends=$GLOBALEXECT??:INDEX: <NEXT> GLOBALCENDS<a> ;; прибавить к заданным числам десять и вывести результат в глобальную переменную

sends=zip|rar|7z|ace|arj|cab|gz|jar|lzh|tar|xz|wim??-4 dilog=[combo=BOX36] <IF> Execute(StringInStr('|7z|zip|tar|wim|','|GLOBALCOMBO<1>|')) > 0 <THEN> infbx=||YES||3||170||60 <ELSE> infbx=||NO||3||170||60 <ENDIF> ;; выбрать в диалоге тип архива, если выбран тип 7z, zip, tar, wim - то вывести сообщение "YES", в ином случае "NO"

scale=1 exect=Execute(@DesktopWidth)&'x'&Execute(@DesktopHeight) GLOBALEXECT<a> ;; получить точную ширину и высоту монитора при масштабировании системы (125%, 150%)

exect=Execute(_StringDuplication('Random(0,9,1)&',100)&'Null') GLOBALEXECT<a> ;; получить строку случайных цифр, длина строки 100

exect=$var_i=Execute(@DesktopWidth/2+@DesktopHeight/2)||_ViewValues($var_i) ;; получить результат математического выражения с макросами ширины и высоты экрана

aends=Execute(<info=s101>*1000-10800000) GLOBALAENDS<a> ;; получить время в миллисекундах прошедшее от 1970/01/01 00:00:00 минус 3 часа

<SELECT> <CASE> Execute(StringRegExp('%N','(?i)^Prog.*\.rar$')) = 1 <#> infbx=InfoBox_TEST1 <CASE> Execute(StringRegExp('%N','(?i)^Arch.*\.7z$')) = 1 <#> infbx=InfoBox_TEST2 <CASEELSE> infbx=InfoBox_TEST3 <ENDSELECT> ;; запуск сообщений относительно имён файла под курсором


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