Что нового

Выполнение нескольких строк кода функцией Execute

alex33

Скриптер
Сообщения
1,457
Репутация
186
Можно ли функцией Execute выполнить не одну, а несколько строк кода?

Вот такой пример не работает.
Код:
Global $sCode=""

$sCode="Func _echo($sMSG)"&@CRLF&"MSGBox(0,'echo',$sMSG)"&@CRLF&"EndFunc"
ConsoleWrite(@CRLF&$sCode&@CRLF)
Execute($sCode)

_echo(1)
_echo(2)
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Очевидно что нельзя.
Что и подтверждает проведённый Вами эксперимент. :smile:


Добавлено:
Сообщение автоматически объединено:

alex33, может вам стоит почитать литературу про логическое программирование, prolog в частности?
Может это больше соответствует тем идеям, которыми Вы сейчас увлеклись?
 
Автор
alex33

alex33

Скриптер
Сообщения
1,457
Репутация
186
InnI, Да, это будет работать в коде который у вас или вот в таком:
Код:
$sCode = "msgbox(0,1,1) & @CRLF & msgbox(0,2,2)"
Execute($sCode)


Но не будет в моём первоначальном:
Код:
$sCode="Func _echo($sMSG) & @CRLF & MSGBox(0,'echo',$sMSG) & @CRLF & EndFunc"


Т.Е. Если в коде есть ключевые слова типа If EndIf, Func EndFunc и т.д. то такой код не будет выполняться.
С этим ничего уже не сделаешь?
 

InnI

AutoIT Гуру
Сообщения
4,982
Репутация
1,460
alex33
это будет работать... Но не будет... Если в коде есть
Я знаю. Но вы задали абстрактный вопрос "Можно ли" и получили такой же ответ "Можно". И даже пример.

С этим ничего уже не сделаешь?
Вы даже если этот код в отдельный скрипт запишите, то при запуске ничего не получите, т.к. это просто описание функции.
 
Автор
alex33

alex33

Скриптер
Сообщения
1,457
Репутация
186
InnI [?]
Вы даже если этот код в отдельный скрипт запишите, то при запуске ничего не получите
Ладно, сделаем так, всё равно не будет работать.
Код:
$sCode="Func _echo($sMSG) & @CRLF & MSGBox(0,'echo',$sMSG) & @CRLF & EndFunc & @CRLF & _echo('hello world')"



это просто описание функции.
А потом я эту функцию ведь пытаюсь вызвать в скрипте, но ошибка, она не определена...


Добавлено:
Сообщение автоматически объединено:

InnI [?]
Но вы задали абстрактный вопрос "Можно ли" и получили такой же ответ "Можно". И даже пример.
Ну это да, понятно. Спасибо. Просто хочется с этим разобраться дальше.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Создаете временный файл, записываете в него что-угодно и запускаете с помощью параметра "/AutoIt3ExecuteScript" (см. справку).
 
Верх