<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Удаление элемента из массива, который прошёл проверку]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Удаление элемента из массива, который прошёл проверку форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Tue, 07 Apr 2026 13:20:05 +0300</pubDate>
		<item>
			<title>Удаление элемента из массива, который прошёл проверку</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message54924/topic5294/">Удаление элемента из массива, который прошёл проверку</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_PkhVP3Xy" href="/user/54/" bx-tooltip-user-id="54">Старатель</a> написал:<br />Вариант 1 неожиданно может дать &nbsp;ошибку <br />=============<br />Прошу прощения. Та ошибка касается только ассоциативных массивов.<br />В текущей постановке задачи, когда таблица с целочисленными ключами, можно использовать оба варианта. <br />
			<i>18.04.2021 14:15:12, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message54924/topic5294/</link>
			<guid>http://forum.quik.ru/messages/forum10/message54924/topic5294/</guid>
			<pubDate>Sun, 18 Apr 2021 14:15:12 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Удаление элемента из массива, который прошёл проверку</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message54922/topic5294/">Удаление элемента из массива, который прошёл проверку</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_oAE3Mt33" href="/user/54/" bx-tooltip-user-id="54">Старатель</a> написал:<br />Вариант 1:<br />=============<br />Вариант 1 неожиданно может дать <noindex><a href="https://forum.quik.ru/messages/forum8/message54907/topic6060/#message54907" target="_blank" rel="nofollow">ошибку</a></noindex>, т.ч. лучше пользоваться вариантом 2 или делать <noindex><a href="https://forum.quik.ru/messages/forum8/message54915/topic6060/#message54915" target="_blank" rel="nofollow">обход через next</a></noindex> <br />
			<i>18.04.2021 13:27:41, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message54922/topic5294/</link>
			<guid>http://forum.quik.ru/messages/forum10/message54922/topic5294/</guid>
			<pubDate>Sun, 18 Apr 2021 13:27:41 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Удаление элемента из массива, который прошёл проверку</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message43606/topic5294/">Удаление элемента из массива, который прошёл проверку</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_Ff49LxlP" href="/user/19/" bx-tooltip-user-id="19">Egor Zaytsev</a> написал:<br />Добрый день.<br /><br /> <noindex><a href="https://forum.quik.ru/user/13807/" target="_blank" rel="nofollow">Hired</a></noindex> , Вам удалось решить проблему?<br />=============<br />Проблема решена. Спасибо всем отписавшимся! <br />
			<i>13.04.2020 14:09:15, Hired.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message43606/topic5294/</link>
			<guid>http://forum.quik.ru/messages/forum10/message43606/topic5294/</guid>
			<pubDate>Mon, 13 Apr 2020 14:09:15 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Удаление элемента из массива, который прошёл проверку</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message43604/topic5294/">Удаление элемента из массива, который прошёл проверку</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_HfEi19MJ" href="/user/54/" bx-tooltip-user-id="54">Старатель</a> написал:<br />Вариант 2:
====code====
<pre>&nbsp;&nbsp;&nbsp;&nbsp;for i = #sec_code, 1, -1 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local bumaga = sec_code
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LowDnya = getParamEx (class_code, bumaga, "LOW").param_value
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Last = getParamEx (class_code, bumaga, "LAST").param_value
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Raznica = math.abs(LowDnya - Last)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if Raznica &#62; 1 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message(tostring(bumaga .. " " .. Raznica ))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.remove(sec_code, i)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;end</pre>
=============
<br />=============<br />Спасибо! Этот способ сработал! Проблема решена. Всё оказалось проще, чем я думал :)<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_qKTB5rwD" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a> написал:<br />Эту задачу можно решить разными способами.<br />=============<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_Ts2aQeqg" href="/user/1222/" bx-tooltip-user-id="1222">Anton</a> написал:<br />Предлагаю другой вариант: перед циклом for создайте временный пустой массив<br />=============<br />Спасибо за советы! В будущем обязательно попробую предложенные варианты в более сложных скриптах! <br />
			<i>13.04.2020 14:07:26, Hired.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message43604/topic5294/</link>
			<guid>http://forum.quik.ru/messages/forum10/message43604/topic5294/</guid>
			<pubDate>Mon, 13 Apr 2020 14:07:26 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Удаление элемента из массива, который прошёл проверку</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message43591/topic5294/">Удаление элемента из массива, который прошёл проверку</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Эту задачу можно решить разными способами.<br /><br />1. Усложняете таблицу элементов. Вместо элементов - вложенные таблицы, с полями &nbsp;sec_code и checked. После проверки ставите checked = true. Далее по условию проверяете, что элемент уже не трубует проверки.<br /> &nbsp; &nbsp;Недостаток - более сложная струтуруа, постоянно занятая памаять полной таблицей.<br />2. Вводите новую таблицу, уже проверенных элементов, и по условию вхождения в эту таблицу проверяете, что элемент уже не трубует проверки.<br /> &nbsp; &nbsp;Недостаток - рост занятой памяти, т.к. надо вводить новую сущность.<br />3. Как уже написали выше - ввести временную таблицу с нужными элементами, а в конце перейти на эту таблицу.<br />4. Перебор через while, удаление через table.sremove. Именно, через потокбезопасную функцию, хоть у Вас в коде и нет второго потока, использующего эту таблицу.<br />Почему через for делать нельзя ни в коем случае. Потому что цикл for вычисляет свои значения один раз перед стартом цикла. Поэтому он будет помнить число элементов в таблице, что было изначально - это его инвариантное состояние.<br />Поэтому while. И аккуратно сдвигать счетчик текущего элемента. Этот вариант самый нежелательный, хоть и рабочий. <br />
			<i>13.04.2020 10:07:42, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message43591/topic5294/</link>
			<guid>http://forum.quik.ru/messages/forum10/message43591/topic5294/</guid>
			<pubDate>Mon, 13 Apr 2020 10:07:42 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Удаление элемента из массива, который прошёл проверку</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message43581/topic5294/">Удаление элемента из массива, который прошёл проверку</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Добрый день.<br /><br /><noindex><a href="https://forum.quik.ru/user/13807/" target="_blank" rel="nofollow">Hired</a></noindex>, Вам удалось решить проблему? <br />
			<i>13.04.2020 06:51:46, Egor Zaytsev.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message43581/topic5294/</link>
			<guid>http://forum.quik.ru/messages/forum10/message43581/topic5294/</guid>
			<pubDate>Mon, 13 Apr 2020 06:51:46 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Удаление элемента из массива, который прошёл проверку</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message43576/topic5294/">Удаление элемента из массива, который прошёл проверку</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_oKbzWF71" href="/user/62/" bx-tooltip-user-id="62">Николай Камынин</a> написал:<br />примерно так:<br />=============<br />Это из серии вредных советов. Так делать не следует. <br />
			<i>12.04.2020 18:17:05, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message43576/topic5294/</link>
			<guid>http://forum.quik.ru/messages/forum10/message43576/topic5294/</guid>
			<pubDate>Sun, 12 Apr 2020 18:17:05 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Удаление элемента из массива, который прошёл проверку</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message43572/topic5294/">Удаление элемента из массива, который прошёл проверку</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			...<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;table.remove(sec_code,k)<br />... <br />
			<i>12.04.2020 15:49:46, Николай Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message43572/topic5294/</link>
			<guid>http://forum.quik.ru/messages/forum10/message43572/topic5294/</guid>
			<pubDate>Sun, 12 Apr 2020 15:49:46 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Удаление элемента из массива, который прошёл проверку</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message43571/topic5294/">Удаление элемента из массива, который прошёл проверку</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			примерно так:<br />... <br /> &nbsp; &nbsp; &nbsp;for k,bumaga in ipairs(sec_code) do<br /> &nbsp; &nbsp; &nbsp;LowDnya = getParamEx (class_code, bumaga, &quot;LOW&quot;).param_value<br /> &nbsp; &nbsp; &nbsp;Last = getParamEx (class_code, bumaga, &quot;LAST&quot;).param_value<br /> &nbsp; &nbsp; &nbsp;Raznica = math.abs(LowDnya - Last)<br /> &nbsp; &nbsp; &nbsp; &nbsp; if Raznica &gt; 1 then<br /> &nbsp; &nbsp; &nbsp; &nbsp; message(tostring(bumaga .. &quot; &quot; .. Raznica ))<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; table.remove((sec_code,k)<br /> &nbsp; &nbsp; &nbsp; &nbsp; sleep(3000)<br /> &nbsp; &nbsp; &nbsp; &nbsp; end<br /> &nbsp; &nbsp; &nbsp;end &nbsp; <br /> &nbsp; <br />
			<i>12.04.2020 15:49:05, Николай Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message43571/topic5294/</link>
			<guid>http://forum.quik.ru/messages/forum10/message43571/topic5294/</guid>
			<pubDate>Sun, 12 Apr 2020 15:49:05 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Удаление элемента из массива, который прошёл проверку</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message43570/topic5294/">Удаление элемента из массива, который прошёл проверку</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Вариант 1:<br />
====code====
<pre>&nbsp;&nbsp;&nbsp;&nbsp;for i, bumaga in pairs(sec_code) do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LowDnya = getParamEx (class_code, bumaga, "LOW").param_value
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Last = getParamEx (class_code, bumaga, "LAST").param_value
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Raznica = math.abs(LowDnya - Last)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if Raznica &#62; 1 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message(tostring(bumaga .. " " .. Raznica ))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sec_code&#91;i&#93; = nil
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;end
</pre>
=============
<br />Вариант 2:<br />
====code====
<pre>&nbsp;&nbsp;&nbsp;&nbsp;for i = #sec_code, 1, -1 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local bumaga = sec_code&#91;i&#93;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LowDnya = getParamEx (class_code, bumaga, "LOW").param_value
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Last = getParamEx (class_code, bumaga, "LAST").param_value
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Raznica = math.abs(LowDnya - Last)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if Raznica &#62; 1 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message(tostring(bumaga .. " " .. Raznica ))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.remove(sec_code, i)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;end
</pre>
============= <br />
			<i>12.04.2020 15:45:36, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message43570/topic5294/</link>
			<guid>http://forum.quik.ru/messages/forum10/message43570/topic5294/</guid>
			<pubDate>Sun, 12 Apr 2020 15:45:36 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Удаление элемента из массива, который прошёл проверку</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message43563/topic5294/">Удаление элемента из массива, который прошёл проверку</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_nIDIGKml" href="/user/13807/" bx-tooltip-user-id="13807">Hired</a> написал:<br />Понял лишь то, что после message ... нужно использовать &quot;table.remove&quot;,<br />=============<br />Концептуально да, практически удалять элементы из массива, по которому идет итерация, не стоит. Предлагаю другой вариант: перед циклом for создайте временный пустой массив, назовем его temp_sec_code, в цикле проверяете элемент и <I>либо</I> кладете его в новый массив, <I>либо</I> показываете сообщение. Таким образом, во временном массиве у вас бумаги, по которым сообщение еще не показано. По окончании цикла for просто sec_code = temp_sec_code. <br />
			<i>12.04.2020 03:31:10, Anton.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message43563/topic5294/</link>
			<guid>http://forum.quik.ru/messages/forum10/message43563/topic5294/</guid>
			<pubDate>Sun, 12 Apr 2020 03:31:10 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Удаление элемента из массива, который прошёл проверку</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message43562/topic5294/">Удаление элемента из массива, который прошёл проверку</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Здравствуйте! <br />Не получается решить проблему с удалением элемента из массива, который прошёл проверку. <br />Пробовал и поиск и разные способы, но ничего не помогло.<br /><br />Нужно чтобы после выполнения условия &quot;if Raznica &gt; 1 then&quot; выводилось сообщение и данный элемент (в моём случае в цикле это &quot;bumaga&quot;) <B>больше не входил в проверку</B> и повторно не выводилось сообщение.<br />Нужно убрать этот элемент из sec_code = { ... }, т.е. удалить конкретный элемент из массива sec_code<br /><br />Понял лишь то, что после message ... нужно использовать &quot;table.remove&quot;, что то вроде: 
====code====
<pre>&nbsp;&nbsp; if Raznica &#62; 1 then
&nbsp;&nbsp; message(tostring(bumaga .. " " .. Raznica ))
&nbsp;&nbsp; table.remove (sec_code, 1)
&nbsp;&nbsp; sleep(3000)
</pre>
=============
но указать удаление конкретной акции (прошедшей проверку) в массиве не получается. <br /><br /><br />Надеюсь понятно изложил проблему. Начинающий говнокодер :) Может кто помочь советом?<br /><br />
====code====
<pre>IsRun = true
sec_code = { "GAZAP", "LKOH", "SBER", "GMKN", "TRFM", "RAVN" }
class_code = "QJSIM"

function main()
&nbsp;&nbsp;&nbsp;while IsRun do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for _,bumaga in ipairs(sec_code) do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LowDnya = getParamEx (class_code, bumaga, "LOW").param_value
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Last = getParamEx (class_code, bumaga, "LAST").param_value
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Raznica = math.abs(LowDnya - Last)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if Raznica &#62; 1 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message(tostring(bumaga .. " " .. Raznica ))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(3000)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;end
end

function OnStop()
&nbsp;&nbsp;&nbsp;IsRun = false
end
</pre>
============= <br />
			<i>11.04.2020 19:12:46, Hired.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message43562/topic5294/</link>
			<guid>http://forum.quik.ru/messages/forum10/message43562/topic5294/</guid>
			<pubDate>Sat, 11 Apr 2020 19:12:46 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
