<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Запустить скрипт Lua другим скриптом]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Запустить скрипт Lua другим скриптом форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sat, 09 May 2026 04:19:36 +0300</pubDate>
		<item>
			<title>Запустить скрипт Lua другим скриптом</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message77568/topic8892/">Запустить скрипт Lua другим скриптом</a></b> <i>Запустить скрипт Lua другим скриптом</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_JEpbvpWZ" href="/user/16131/" bx-tooltip-user-id="16131">VPM</a> написал:<br /><noindex><a href="/user/62/" target="_blank" rel="nofollow">nikolz</a></noindex>, Да Вы совершено правы, я лишь хотел подчеркнуть особенность подключения &nbsp;<br />====quote====<br /><noindex><a href="/user/16131/" target="_blank" rel="nofollow">VPM</a></noindex> написал:<br />Функция dofile выполнит Lua-скрипт, и все переменные и функции, определённые в нём, будут доступны в текущем окружении. И смысл здесь в подключении новой задачи!<br />=============<br /> Ведь есть еще способ &nbsp;local Utility = require(&quot;Utility&quot;).<br />=============<br /> require &nbsp;- это способ подключения готовых (не собственных) библиотек в том числе на С. &nbsp;Но при этом вы не можете передать в из них данные через глобальный стек. <br />------------------- <br />Повторю свое мнение. dofile -не для подключения новой задачи, а для разделения длинного скрипта на отдельные куски, чтобы было проще читать и отлаживать. &nbsp;<br />---------------------<br />Аналогия на книжках примерно такая:<br />подключение библиотек с помощью &nbsp; require &nbsp;- это как сборка коллекции различных книг.<br />а применение dofile - это как сборка книжки их листов. &nbsp; <br />
			<i>08.02.2025 18:28:14, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message77568/topic8892/</link>
			<guid>http://forum.quik.ru/messages/forum10/message77568/topic8892/</guid>
			<pubDate>Sat, 08 Feb 2025 18:28:14 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запустить скрипт Lua другим скриптом</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message77562/topic8892/">Запустить скрипт Lua другим скриптом</a></b> <i>Запустить скрипт Lua другим скриптом</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_NES1Suxx" href="/user/62/" bx-tooltip-user-id="62">nikolz</a>, Да Вы совершено правы, я лишь хотел подчеркнуть особенность подключения <br />====quote====<br /><a class="blog-p-user-name" id="bp_Q77UIAwk" href="/user/16131/" bx-tooltip-user-id="16131">VPM</a> написал:<br />Функция dofile выполнит Lua-скрипт, и все переменные и функции, определённые в нём, будут доступны в текущем окружении. И смысл здесь в подключении новой задачи!<br />=============<br />Ведь есть еще способ &nbsp;local Utility = require(&quot;Utility&quot;). <br />
			<i>08.02.2025 10:12:29, VPM.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message77562/topic8892/</link>
			<guid>http://forum.quik.ru/messages/forum10/message77562/topic8892/</guid>
			<pubDate>Sat, 08 Feb 2025 10:12:29 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запустить скрипт Lua другим скриптом</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message77559/topic8892/">Запустить скрипт Lua другим скриптом</a></b> <i>Запустить скрипт Lua другим скриптом</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_PX1t6qzm" href="/user/16131/" bx-tooltip-user-id="16131">VPM</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/62/" target="_blank" rel="nofollow">nikolz</a></noindex> написал:<br />И еще...Нет смысла запускать скрипты с помощью dofile (особенно как в приведенном VPM примере)Так как это лишь замедляет исполнение.---------------dofile имеет смысл применять для разделения большого скрипта на блоки, чтобы упростить чтение и отладку скрипта.<br />=============<br /> <noindex><a href="/user/62/" target="_blank" rel="nofollow">nikolz</a></noindex>, Пример выше это просто демонстрация возможностей, ни на что не претендующая.<br /> К примеру у себя использую следующий вариант (кусочек из рабочего код): &nbsp; 
====code====
<pre>&nbsp;&nbsp; -- Пытаемся загрузить библиотеку 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; local&nbsp;&nbsp;fuzzy;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; local&nbsp;&nbsp;success, err&nbsp;&nbsp;=&nbsp;&nbsp;pcall(dofile, path .. '&#92;&#92;luafuzzy.lua')
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp; not&nbsp;&nbsp;success&nbsp;&nbsp;then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log:error( "Ошибка при загрузке файла luafuzzy: "&nbsp;&nbsp; ..&nbsp;&nbsp;err)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- Если библиотека успешно загружена, используем её 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; local&nbsp;&nbsp;fuzzy&nbsp;&nbsp;=&nbsp;&nbsp;luafuzzy()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log:info( "Библиотека luafuzzy успешно загружена!" )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end 

&nbsp;&nbsp;&nbsp;&nbsp; while&nbsp;&nbsp;WORKING_FLAG&nbsp;&nbsp;do&nbsp;&nbsp; </pre>
=============
 Перед основным циклом while WORKING_FLAG do 1 раз вызываем &quot;Пан или пропал!&quot; :: , ни чего не замедляем, просто Функция dofile выполнит Lua-скрипт, и все переменные и функции, определённые в нём, будут доступны в текущем окружении. И смысл здесь в подключении новой задачи!<br />=============<br />Вообще-то загрузка библиотеки и запуск скрипта в вашем примере это две большие разницы. <br />Поясняю.<br />Загрузка библиотек делается как правило один раз при запуске скрипта. Это необходимая операция, так как библиотек много разных &nbsp;и разумно не изобретать велосипед, а использовать готовый.<br />Так как загрузка изначально и однократно, то не имеет значение время загрузки.<br />----------------------- &nbsp;<br />В вашем примере Вы грузите и запускаете скрипт не однократно, так как используете флаг загрузки.<br />Но нет смысла грузить и запускать скрипт &nbsp;т. е. многократно его грузить. <br />Я через dofile загружаю свои библиотеки функций с целью разделить большой скрипт на части и отлаживать эти части отдельно. Фактически это вариант создания библиотеки, с упрощением обмена данными через глобальный стек. &nbsp; <br />
			<i>08.02.2025 08:40:16, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message77559/topic8892/</link>
			<guid>http://forum.quik.ru/messages/forum10/message77559/topic8892/</guid>
			<pubDate>Sat, 08 Feb 2025 08:40:16 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запустить скрипт Lua другим скриптом</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message77555/topic8892/">Запустить скрипт Lua другим скриптом</a></b> <i>Запустить скрипт Lua другим скриптом</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_ve7Qyc2r" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />И еще...Нет смысла запускать скрипты с помощью dofile (особенно как в приведенном VPM примере)Так как это лишь замедляет исполнение.---------------dofile имеет смысл применять для разделения большого скрипта на блоки, чтобы упростить чтение и отладку скрипта.<br />=============<br /><a class="blog-p-user-name" id="bp_eI9UjpAh" href="/user/62/" bx-tooltip-user-id="62">nikolz</a>, Пример выше это просто демонстрация возможностей, ни на что не претендующая.<br /> К примеру у себя использую следующий вариант (кусочек из рабочего код): &nbsp;
====code====
<pre>-- Пытаемся загрузить библиотеку
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local fuzzy;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local success, err = pcall(dofile, path..'&#92;&#92;luafuzzy.lua')
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if not success then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log:error("Ошибка при загрузке файла luafuzzy: " .. err)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- Если библиотека успешно загружена, используем её
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local fuzzy = luafuzzy()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log:info("Библиотека luafuzzy успешно загружена!")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end

&nbsp;&nbsp;&nbsp;&nbsp;while WORKING_FLAG do</pre>
=============
Перед основным циклом while WORKING_FLAG do 1 раз вызываем &quot;Пан или пропал!&quot; <img src="http://forum.quik.ru/upload/main/smiles/5/icon_smile.png" border="0" data-code=":smile:" data-definition="SD" alt=":smile:" style="width:16px;height:16px;" title="С улыбкой" class="bx-smile" /> , ни чего не замедляем, просто Функция dofile выполнит Lua-скрипт, и все переменные и функции, определённые в нём, будут доступны в текущем окружении. И смысл здесь в подключении новой задачи! <br />
			<i>07.02.2025 20:35:44, VPM.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message77555/topic8892/</link>
			<guid>http://forum.quik.ru/messages/forum10/message77555/topic8892/</guid>
			<pubDate>Fri, 07 Feb 2025 20:35:44 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запустить скрипт Lua другим скриптом</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message77466/topic8892/">Запустить скрипт Lua другим скриптом</a></b> <i>Запустить скрипт Lua другим скриптом</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			И еще...<br />Нет смысла запускать скрипты с помощью dofile (особенно как в приведенном VPM примере)<br />Так как это лишь замедляет исполнение.<br />---------------<br />dofile имеет смысл применять для разделения большого скрипта на блоки, <br />чтобы упростить чтение и отладку скрипта. <br />
			<i>03.02.2025 08:05:12, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message77466/topic8892/</link>
			<guid>http://forum.quik.ru/messages/forum10/message77466/topic8892/</guid>
			<pubDate>Mon, 03 Feb 2025 08:05:12 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запустить скрипт Lua другим скриптом</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message77465/topic8892/">Запустить скрипт Lua другим скриптом</a></b> <i>Запустить скрипт Lua другим скриптом</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_tiqFTMTy" href="/user/2047/" bx-tooltip-user-id="2047">Станислав</a> написал:<br />Ну вы конечно очень глубоко копнули, а человек спросил просто можно ли одним скриптом в окне &quot;доступные скрипты&quot; перевести второй скрипт из состояния &quot;остановлен&quot; в состояние &quot;запущен&quot;. <br /><br />Штатными средствами сделать этого нельзя. <br />Понятно что имея возможность запускать любой код в подключаемых библиотеках можно сделать &nbsp;вообще все что угодно , однако это не будет хорошим решением.<br />=============<br />Задача решается с помощью механизма Event (ранее об этом говорил как альтернатива использования sleep в main). &nbsp; <br />
			<i>03.02.2025 08:00:37, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message77465/topic8892/</link>
			<guid>http://forum.quik.ru/messages/forum10/message77465/topic8892/</guid>
			<pubDate>Mon, 03 Feb 2025 08:00:37 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запустить скрипт Lua другим скриптом</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message77461/topic8892/">Запустить скрипт Lua другим скриптом</a></b> <i>Запустить скрипт Lua другим скриптом</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Ну вы конечно очень глубоко копнули, а человек спросил просто можно ли одним скриптом в окне &quot;доступные скрипты&quot; перевести второй скрипт из состояния &quot;остановлен&quot; в состояние &quot;запущен&quot;. <br /><br />Штатными средствами сделать этого нельзя. <br />Понятно что имея возможность запускать любой код в подключаемых библиотеках можно сделать <U>вообще все что угодно</U>, однако это не будет хорошим решением. <br />
			<i>02.02.2025 19:45:54, Станислав.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message77461/topic8892/</link>
			<guid>http://forum.quik.ru/messages/forum10/message77461/topic8892/</guid>
			<pubDate>Sun, 02 Feb 2025 19:45:54 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запустить скрипт Lua другим скриптом</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message77456/topic8892/">Запустить скрипт Lua другим скриптом</a></b> <i>Запустить скрипт Lua другим скриптом</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			но сложнее, чем просто запуск из файлов. <br />
			<i>02.02.2025 17:27:32, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message77456/topic8892/</link>
			<guid>http://forum.quik.ru/messages/forum10/message77456/topic8892/</guid>
			<pubDate>Sun, 02 Feb 2025 17:27:32 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запустить скрипт Lua другим скриптом</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message77455/topic8892/">Запустить скрипт Lua другим скриптом</a></b> <i>Запустить скрипт Lua другим скриптом</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_Sz5euXN3" href="/user/16744/" bx-tooltip-user-id="16744">Saturn</a> написал:<br />Возможно ли с помощью одного скрипта запустить другой ?<br />=============<br />Полагаю, что вопрос не о запуске lua функций из файлов, а именно скриптов QUIK на основе библиотеки QLua так как это две большие разницы. <br />------------------------ &nbsp;<br />Запуск функций &nbsp;из файлов с помощью dofile &nbsp;в вызывающем их потоке. <br />Т е сколько бы функций не запустили будет основной поток с колбеками и поток main.<br />-------------------------<br />При запуске скриптов QUIK &nbsp;будет создаваться новый поток main.<br />Таким способом можно запустить столько потоков сколько хочется.<br />------------------------------<br />Сделать это можно. &nbsp; <br />
			<i>02.02.2025 17:26:28, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message77455/topic8892/</link>
			<guid>http://forum.quik.ru/messages/forum10/message77455/topic8892/</guid>
			<pubDate>Sun, 02 Feb 2025 17:26:28 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запустить скрипт Lua другим скриптом</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message77454/topic8892/">Запустить скрипт Lua другим скриптом</a></b> <i>Запустить скрипт Lua другим скриптом</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_ibEDQABC" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a>, &nbsp;Согласен, вопрос составлен не четко, двусмысленно. Но ведь он звучит все таки так:<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_SEoD8DdO" href="/user/16744/" bx-tooltip-user-id="16744">Saturn</a> написал:<br />То есть один Kua скрипт запущенный в цикле проверял бы если другой Lua скрипт не запущен - то запустить его.<br />=============<br />Ответ: Да, это возможно. В Lua можно запустить другой Lua-скрипт с помощью функции dofile или loadfile. Вы можете создать основной скрипт, который будет проверять, запущен ли другой скрипт, и если нет, то запускать его.<br />Вот такого подхода пример:<br />
====code====
<pre>-- основной скрипт (main.lua)
local is_other_script_running = false
-- Функция для проверки, запущен ли другой скрипт
function check_if_other_script_running()
&nbsp;&nbsp;&nbsp;&nbsp;-- Здесь можно реализовать проверку, например, через файл или глобальную переменную
&nbsp;&nbsp;&nbsp;&nbsp;-- В данном примере просто используем переменную для демонстрации
&nbsp;&nbsp;&nbsp;&nbsp;return is_other_script_running
end
-- Функция для запуска другого скрипта
function run_other_script()
&nbsp;&nbsp;&nbsp;&nbsp;is_other_script_running = true
&nbsp;&nbsp;&nbsp;&nbsp;dofile("other_script.lua")&nbsp;&nbsp;-- Запуск другого скрипта
&nbsp;&nbsp;&nbsp;&nbsp;is_other_script_running = false
end
-- Основной цикл
while true do
&nbsp;&nbsp;&nbsp;&nbsp;if not check_if_other_script_running() then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print("Другой скрипт не запущен, запускаю...")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run_other_script()
&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print("Другой скрипт уже запущен.")
&nbsp;&nbsp;&nbsp;&nbsp;end

&nbsp;&nbsp;&nbsp;&nbsp;-- Пауза перед следующей проверкой
&nbsp;&nbsp;&nbsp;&nbsp;os.execute("sleep 1")&nbsp;&nbsp;-- Для Linux/MacOS
&nbsp;&nbsp;&nbsp;&nbsp;-- os.execute("timeout /t 1")&nbsp;&nbsp;-- Для Windows
end
</pre>
=============
Никаких принципиальных сложностей. В этом примере: Основной скрипт (main.lua) работает в бесконечном цикле. Он проверяет, запущен ли другой скрипт (other_script.lua), с помощью функции check_if_other_script_running. Если другой скрипт не запущен, он запускает его с помощью dofile(&quot;other_script.lua&quot;). После завершения работы другого скрипта, флаг is_other_script_running сбрасывается.<br /><br />Вы поднимаете более сложный вопрос, о взаимодействии между скриптами в окружении терминала, в контексте Lua. И отвечаете, прямое управление скриптами в терминале невозможно, но есть обходные пути. <br />
			<i>02.02.2025 13:48:25, VPM.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message77454/topic8892/</link>
			<guid>http://forum.quik.ru/messages/forum10/message77454/topic8892/</guid>
			<pubDate>Sun, 02 Feb 2025 13:48:25 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запустить скрипт Lua другим скриптом</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message77453/topic8892/">Запустить скрипт Lua другим скриптом</a></b> <i>Запустить скрипт Lua другим скриптом</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Есть простой, прямой вопрос - можно ли в окружении терминала выполнить другой скрипт, контролировать его состояние. Ответ - нет.<br />Вы же говорите о том, что давайте вместо поставленной задачи преобразуем её к виду, когда другие скрипты - это модули, выполняющий какие-то действия и контролируемые и выполняемые в окружении скрипта дирижёра. Т.е. по сути - это не отдельные скрипты, а один.<br /><br />Да, такой подход возможен. Но это не то же самое. Понимая, что прямой вариант невозможен, можно попробовать решить через второй вариант. Но он не всегда применим, т.к. есть скрипты не с открытым кодом, с сложным окружением и т.д. Любители использования dofile могут попробовать запустить так два модуля, использующих переменные с одинаковым именованием.<br /><br />Т.о. ответ должен быть таким - окружение скрипта, запускаемого в терминале не предоставляет информацию о состоянии других скриптов, не имеет методов запуска/остановки других скриптов, содержащихся в окне списка доступных скриптов LUA терминала.<br /><br />При этом обмен данными между скриптами сделать можно. А значит существует и третий подход - это иметь два контура в контролируемых скриптах: холостой и рабочий. Тогда скрипт будет отдельной сущностью, его можно отдельно запустить в терминале. Скрипты постоянно работают, но переходят в разные состояния по командам из контролирующего скрипта, через обмен данными. В таком подходе важно обеспечить перехват ошибок, чтобы контролируемый скрипт не &quot;упал&quot;. Но опять же - необходимо иметь открытый код скриптов. <br />
			<i>02.02.2025 10:28:28, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message77453/topic8892/</link>
			<guid>http://forum.quik.ru/messages/forum10/message77453/topic8892/</guid>
			<pubDate>Sun, 02 Feb 2025 10:28:28 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запустить скрипт Lua другим скриптом</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message77451/topic8892/">Запустить скрипт Lua другим скриптом</a></b> <i>Запустить скрипт Lua другим скриптом</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<p>Разбираясь в работе Quik и функциональных возможностях Lua, иногда можно запутаться, и тогда трезвый взгляд со стороны помогает всё расставить по местам. Для меня таким взглядом всегда был <a class="blog-p-user-name" id="bp_GQFu0qPS" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a>. И сейчас я бы не стал вмешиваться в эту дискуссию, если бы не ответы! </p><p>Да, это возможно! В Lua действительно можно запустить другой Lua-скрипт с помощью функций dofile или loadfile. Вы можете создать основной скрипт, который будет проверять, запущен ли другой скрипт, и если нет — запускать его. Все это и так явно.</p><p>Но почему бы не пойти дальше? Хочу озвучить другой подход. </p><p>Давайте забудем про все языки (Си, C#, да и про Fortran с Basic я забыл ещё со студенческих времён). Что у нас есть?</p><ul><li><p>API Quik: разработчики любезно предоставили нам возможность через Lua получать данные от брокера и отправлять приказы (заявки) брокеру.</p><li><p>Функционал Lua: вот здесь начинается самое интересное!</p></ul><p>Представим, что поток main — это основной поток (другого ничего нет), в котором всё крутится (в этом легко убедиться, запустив его без задержек).<br />Функционал Lua предоставляет лёгкие потоки, которые работают внутри основного потока — они называются корутины. </p><p>Что они делают? Любые программы, блоки, модули, функции — всё это можно запускать в корутинах! Причём не только последовательно, но и асинхронно.</p><p>Таким образом, функция main(), будучи запущенной, превращается в сложнейшую программу, способную не только явно но и в фоновом режиме выполнять что угодно: получать данные, проводить расчёты, подключать и останавливать модули и многое другое.</p><p>К чему я так подробно рассказываю? Напишите в своей программе модуль на Lua (это та же таблица) &nbsp;который хотите запустить, и используйте его где угодно.</p><p> Это открывает огромные возможности для создания гибких и мощных решений. </p> <br />
			<i>01.02.2025 22:53:32, VPM.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message77451/topic8892/</link>
			<guid>http://forum.quik.ru/messages/forum10/message77451/topic8892/</guid>
			<pubDate>Sat, 01 Feb 2025 22:53:32 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запустить скрипт Lua другим скриптом</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message77445/topic8892/">Запустить скрипт Lua другим скриптом</a></b> <i>Запустить скрипт Lua другим скриптом</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Нет, штатных средств для этого нет. <br />
			<i>01.02.2025 11:18:52, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message77445/topic8892/</link>
			<guid>http://forum.quik.ru/messages/forum10/message77445/topic8892/</guid>
			<pubDate>Sat, 01 Feb 2025 11:18:52 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запустить скрипт Lua другим скриптом</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message77443/topic8892/">Запустить скрипт Lua другим скриптом</a></b> <i>Запустить скрипт Lua другим скриптом</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_sVLUZwLd" href="/user/16015/" bx-tooltip-user-id="16015">funduk</a> написал:<br />Вы имеете ввиду что-то, отличное от Lua команды dofile?<br />=============<br />Я имею ввиду - &quot;Возможно ли с помощью одного Lua скрипта, запустить другой ?&quot;<br />То есть один Kua скрипт запущенный в цикле проверял бы если другой Lua скрипт не запущен - то запустить его. <br />
			<i>01.02.2025 10:18:54, Saturn.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message77443/topic8892/</link>
			<guid>http://forum.quik.ru/messages/forum10/message77443/topic8892/</guid>
			<pubDate>Sat, 01 Feb 2025 10:18:54 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запустить скрипт Lua другим скриптом</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message77441/topic8892/">Запустить скрипт Lua другим скриптом</a></b> <i>Запустить скрипт Lua другим скриптом</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Вы имеете ввиду что-то, отличное от Lua команды dofile? <br />
			<i>01.02.2025 01:17:42, funduk.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message77441/topic8892/</link>
			<guid>http://forum.quik.ru/messages/forum10/message77441/topic8892/</guid>
			<pubDate>Sat, 01 Feb 2025 01:17:42 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запустить скрипт Lua другим скриптом</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message77433/topic8892/">Запустить скрипт Lua другим скриптом</a></b> <i>Запустить скрипт Lua другим скриптом</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Нет <br />
			<i>31.01.2025 19:19:16, Станислав.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message77433/topic8892/</link>
			<guid>http://forum.quik.ru/messages/forum10/message77433/topic8892/</guid>
			<pubDate>Fri, 31 Jan 2025 19:19:16 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запустить скрипт Lua другим скриптом</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message77430/topic8892/">Запустить скрипт Lua другим скриптом</a></b> <i>Запустить скрипт Lua другим скриптом</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Возможно ли с помощью одного скрипта запустить другой ? <br />
			<i>31.01.2025 18:11:31, Saturn.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message77430/topic8892/</link>
			<guid>http://forum.quik.ru/messages/forum10/message77430/topic8892/</guid>
			<pubDate>Fri, 31 Jan 2025 18:11:31 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
