dofile()

Страницы: 1
RSS
dofile()
 
Здравствуйте.
Есть некий скрипт, который постоянно крутится и чего то ждет (крутится в цикле main). По событию этот некий скрипт через dofile() запускает другой скрипт (в котором так же присутствует цикл main и идет вывод тестового сообщения).
в итоге ничего не происходит.
это баг или фича?
 
Так делать нельзя.

Вы перетираете старую функцию main  (и все стальные одинаковые имена старого скрипта) новыми. В результате получается  совсем не то, что вы хотите.

До dofile скрипт с диска запускается на в новой lua-машине, а в той же самой.
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
**
По dofile скрипт с диска запускается не в новой lua-машине, а в той же самой.
**
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
как быть, никак?
require тоже не подходит?
 
Добрый день.

os.execute("lua " .. <путь к Вашему скрипту>)
 
при выполнении открывается в блокноте текст скрипта
 
Видимо пути не настроены. Попробуйте прописать полный путь к lua.exe если он у Вас есть на машине.
 
видимо у меня нет lua.exe на компьютере?
по моему это не то, что мне надо
 
А что надо-то, в самом деле?
 
да все то же, отслеживания нажатия горячих клавиш.
т.к. клуа такого не знает, приходится городить подпорки
 
А конкретнее?
 
конкретнее - разобрались в соседнем форуме.
еще конкретнее - реализация горячих клавиш.
т.е. создание скрипта 1.lua, который отслеживает нажатие клавиш и запускает соответствующий скрипт
 
ну вот, а я всё пропустил. Ссылкой не поделитесь?
 
http://quik2dde.ru/viewtopic.php?pid=1920#p1920
 
так все же как в квике запустить файл со скриптом из другого скрипта? при это в обоих файлах есть цикл main
 
Ответ уже был дан выше
 
нашел скача lua.exe
делаю так
os.execute("C:\\KIT\\lua\\lua53.exe", "C:\\KIT\\qpl\\1.lua")
открывается консоль луа
 
Код
os.execute("C:\\KIT\\lua\\lua53.exe C:\\KIT\\qpl\\1.lua") 
 
попробовал. Выдало ошибку о невозможности подключения библиотеки. Но это не проблема.
Этот скрипт будет запущен, скажем так, в рамках квика, (т.е. сможет использовать инфу от квика) или в рамках отдельного lua.exe как отдельное приложение, которое не в курсе что за такая функция main и т.д.?
 
Цитата
Этот скрипт будет запущен, скажем так, в рамках квика, (т.е. сможет использовать инфу от квика) или в рамках отдельного lua.exe как отдельное приложение, которое не в курсе что за такая функция main и т.д.?
Отдельно.
Но вы же этого и хотели!

Если бы вы вместо длинного описания эмоций толком описали решаемую вами задачу - то, вероятно, диалог был бы более продуктивным.
 
ничего я этого не хотел и эмоций никаких не было =)
изначально было так:
Цитата
Есть некий скрипт, который постоянно крутится и чего то ждет (крутится в цикле main). По событию этот некий скрипт через dofile() запускает другой скрипт (в котором так же присутствует цикл main и идет вывод тестового сообщения).
т.е. во втором скрипте тоже используется цикл main. о каком отдельном запуске идет речь?

нужно запустить второй скрипт параллельно первому и в рамках квика. как это сделать?
 
Единственный вариант - иметь изначально запущенными оба скрипта. ведомый скрипт крутится вхолостую.

По сигналу ведущего скрипта ведомый начинает делать что-то осмысленное.
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Здравствуйте. Подниму эту тему, потому что озадачился этой же проблемой.
Можно ли как-то из одного скрипта, запустить другой, но так, чтобы его работа выполнялась аналогично тому, как если бы мы его запустили из панели ЛуаСкриптов?
Т.е. полностью независимо от запускающего его скрипта и полностью со своими переменными.  
 
Если это скрипт, обращающийся к Quik - то нет,нельзя
 
Цитата
Sergey Denegin написал:
Здравствуйте. Подниму эту тему, потому что озадачился этой же проблемой.
Можно ли как-то из одного скрипта, запустить другой, но так, чтобы его работа выполнялась аналогично тому, как если бы мы его запустили из панели ЛуаСкриптов?
Т.е. полностью независимо от запускающего его скрипта и полностью со своими переменными.
Технически можно, но не просто.
Для этого надо изучить потоки и владеть СИ.
Сделать можно так:
Запускаем все скрипты, которые будем в дальнейшем использовать.
Скрипты, которые не нужны останавливают себя  сами (останавливаем поток main)
После этого из управляющего скрипта, при необходимости, пускаем поток нужного скрипта,
который закончив работу снова останавливает себя.
 
День добрый, вопрос этот мне тоже интересен, я уточню свою мысль.
Есть управляющий скрипт, запускаемый в Квик, который, например, посредством dofile запускает другой - основной с ТС.
В основном происходит что-то, например "Ошибка создания заявки. [GW][3] "Сейчас эта сессия не идет."."
При этом основной скрипт виден в таблице как работающий, а на самом деле он типа зависший, никаких признаков, указывающих на то, что он работает, нет.
В основном скрипте есть счетчик, который увеличивается, если основной работает. Управляющий скрипт через свой цикл отслеживает этот счетчик и, если он перестал увеличиваться, делает перезапуск основного скрипта (останов, что можно применить? и запуск опять, например через dofile).
Сумбурно, но главная идея - перезапуск одного скрипта из другого, не применяя API  
Страницы: 1
Читают тему
Наверх