передать параметры от одного скрипта другому
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
-
- Сообщения: 128
- Зарегистрирован: 18 мар 2021, 12:45
set еще имеет преимущество перед local, переменную можно дернуть из функции, а local работает только внутри последней, если ничего не позабыл, практики маловато в последнее время
-
- Сообщения: 1616
- Зарегистрирован: 15 сен 2017, 09:03
Дорогой - 13 - !
Ну что же Вы меня путаете то:
У Вас стоит строка:
:global fnParse do={:parse [/system script get $script source]}
где же Вы тут видите мою с двойным парсингом !:
[[:parse "[:parse [/system script get $scrName source]] $Var]"]]
У Вас совем другое - Вы просто создаете функцию из тела скрипта и всё. Это не передача параметров от одного скрипта другому налету. Совсем не о том в посте речь идет.
Ну что же Вы меня путаете то:
У Вас стоит строка:
:global fnParse do={:parse [/system script get $script source]}
где же Вы тут видите мою с двойным парсингом !:
[[:parse "[:parse [/system script get $scrName source]] $Var]"]]
У Вас совем другое - Вы просто создаете функцию из тела скрипта и всё. Это не передача параметров от одного скрипта другому налету. Совсем не о том в посте речь идет.
Последний раз редактировалось Sertik 07 дек 2023, 21:52, всего редактировалось 1 раз.
фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
viewtopic.php?f=14&t=13947
-
- Сообщения: 1616
- Зарегистрирован: 15 сен 2017, 09:03
Код: Выделить всё
# простая передача параметров скрипту и запуск его (параметр любого типа будет превращен в строку)
[[:parse "[:parse [/system script get $msgTxt source]] $Variable"]]
# или то же самое, но при многопоточности c передачей параметров
:local scriptRun "[[:parse [system script get $calledFunctionName source]] ID=$queryID ChatID=$queryChatID]"
:execute script=$scriptRun
# или в одну строку из скрипта
:execute script="[[:parse [system script get $calledFunctionName source]] ID=$queryID ChatID=$queryChatID]"
# из файла
:execute script="[[:parse [/file get $FileName content]] ID=$queryID ChatID=$queryChatID]"
Код: Выделить всё
# передача параметров любого типа кроме массивов
# если текст даже ТОЛЬКО ЛАТИНСКИЙ, НО СОДЕРЖИТ ПРОБЕЛЫ ИЛИ СПЕЦ СИМФОЛЫ -
# то он всё равно должен быть экранирован !
:local Var1 "\"Hello Пользователь\""
:local Var2 "12"
:local Var3 14
:local Var4 192.168.0.1
:local Var5 [/system clock get time]
:log info ("$Var1"." $[:typeof $Var1]")
:log info ("$Var2"." $[:typeof $Var2]")
:log info ("$Var3"." $[:typeof $Var3]")
:log info ("$Var4"." $[:typeof $Var4]")
:log info ("$Var5"." $[:typeof $Var5]")
[[:parse "[:parse [/system script get $scrName source]] Par1=[:to$[:typeof $Var1] $Var1] [:to$[:typeof $Var2] $Var2] [:to$[:typeof $Var3] $Var3] [:to$[:typeof $Var4] $Var4] [:to$[:typeof $Var5] $Var5]"]]
# или в фоне
:execute script="[[:parse "[:parse [/system script get $scrName source]] Par1=[:to$[:typeof $Var1] $Var1] [:to$[:typeof $Var2] $Var2] [:to$[:typeof $Var3] $Var3] [:to$[:typeof $Var4] $Var4] [:to$[:typeof $Var5] $Var5]"]]"
Код: Выделить всё
:local Shield do={
:if ([:typeof $1]="array") do={
:return "\"the array cannot be passed\""}
:if ([:typeof $1]="str") do={
:return "\"$1\""} \
else={ \
:return $1}
}
:local Var1 [$Shield "Hello Пользователь"]
а потом вызывать передачу.
фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
viewtopic.php?f=14&t=13947