<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[QUIK -> DDE &mdash; Двумерный массив]]></title>
	<link rel="self" href="https://quik2dde.ru/extern.php?action=feed&amp;tid=154&amp;type=atom" />
	<updated>2020-09-15T10:16:32Z</updated>
	<generator>PunBB</generator>
	<id>https://quik2dde.ru/viewtopic.php?id=154</id>
		<entry>
			<title type="html"><![CDATA[Re: Двумерный массив]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=2835#p2835" />
			<content type="html"><![CDATA[<p>Не могу разобраться, почему-то криво работает.<br />Есть <br />importTable = {{}};<br />importLine = {};</p><p>importLine запоняется каким то значениями<br />importLine[n]=str;&nbsp; &nbsp;где n = 1..N</p><p>Потом его присваваем как бы строке таблицы<br />importTable[iLine] = importLine; где iLine = 1..3<br />Все строки разные</p><p>print(importLine[1], importLine[2]); даёт<br />2020.09.14 12:25:48&nbsp; &nbsp; 1963032781370132336<br />2020.09.14 16:02:07&nbsp; &nbsp; 1963032781370803101<br />2020.09.15 10:04:08&nbsp; &nbsp; 1936574137854137354</p><p>print(iLine, importTable[iLine][1], importTable[iLine][2]); даёт<br />1&nbsp; &nbsp; 2020.09.14 12:25:48&nbsp; &nbsp; 1963032781370132336<br />2&nbsp; &nbsp; 2020.09.14 16:02:07&nbsp; &nbsp; 1963032781370803101<br />3&nbsp; &nbsp; 2020.09.15 10:04:08&nbsp; &nbsp; 1936574137854137354</p><p>Но такой вывод <br />print(1,importTable[1][1],importTable[1][2]);<br />print(2,importTable[2][1],importTable[2][2]);<br />print(3,importTable[3][1],importTable[3][2]);<br />деёт везде одиниковые значения<br />1&nbsp; &nbsp; 2020.09.15 10:04:08&nbsp; &nbsp; 1936574137854137354<br />2&nbsp; &nbsp; 2020.09.15 10:04:08&nbsp; &nbsp; 1936574137854137354<br />3&nbsp; &nbsp; 2020.09.15 10:04:08&nbsp; &nbsp; 1936574137854137354</p><p>Что за бред ?</p>]]></content>
			<author>
				<name><![CDATA[Sid]]></name>
				<uri>https://quik2dde.ru/profile.php?id=3234</uri>
			</author>
			<updated>2020-09-15T10:16:32Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=2835#p2835</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Двумерный массив]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1733#p1733" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Metallurg пишет:</cite><blockquote><p>ps. использовал вариант с table.insert, но он кажется каким-то топорным</p></blockquote></div><p>Именно insert и надо использовать.<br />На остальные вопросы не отвечаю, т.к. про table.insert вы уже знаете )</p>]]></content>
			<author>
				<name><![CDATA[korovin]]></name>
				<uri>https://quik2dde.ru/profile.php?id=140</uri>
			</author>
			<updated>2015-10-27T19:51:32Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1733#p1733</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Двумерный массив]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1728#p1728" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>korovin пишет:</cite><blockquote><p>то будет ошибка, т.к. элемент номер 6 не проинициализирован как таблица, соответственно как к таблице к нему обращаться нельзя.<br />Это не то чтобы проблема, всё легко решается, просто в зависимости от задачи решения можно выдумать разные.</p></blockquote></div><p>Спасибо за объяснение! Но как тогда расширить таблицу, чтобы можно было обращаться к элементу номер 6?<br />И как наиболее просто проинициализировать таблицу, чтобы она имела такой вид? <br />m = {{}}<br />Так?</p><p>ps. использовал вариант с table.insert, но он кажется каким-то топорным:<br />for i = 1, 8000 do<br />table.insert(m, i, {})<br />end</p>]]></content>
			<author>
				<name><![CDATA[Metallurg]]></name>
				<uri>https://quik2dde.ru/profile.php?id=226</uri>
			</author>
			<updated>2015-10-27T17:03:17Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1728#p1728</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Двумерный массив]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1726#p1726" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Metallurg пишет:</cite><blockquote><p>Чтобы потом можно было обращаться к переменным как к ячейкам двумерного массива:<br />m[1][&quot;переменная1&quot;] = 1<br />??</p></blockquote></div><div class="codebox"><pre><code>m = {{}, {}, {}, {}, {}}

m[1][&quot;aa&quot;] = 1
m[2][&quot;bb&quot;] = 2
m[5][&quot;ee&quot;] = 5</code></pre></div><p>При этом размерность (диапазон) первого индекса жёстко задаётся тем, сколько пустых таблиц проинициализировано первой строкой. Если в приведённом примере написать</p><div class="codebox"><pre><code>m[6][&quot;zz&quot;] = 99</code></pre></div><p>то будет ошибка, т.к. элемент номер 6 не проинициализирован как таблица, соответственно как к таблице к нему обращаться нельзя.<br />Это не то чтобы проблема, всё легко решается, просто в зависимости от задачи решения можно выдумать разные.</p>]]></content>
			<author>
				<name><![CDATA[korovin]]></name>
				<uri>https://quik2dde.ru/profile.php?id=140</uri>
			</author>
			<updated>2015-10-27T14:05:46Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1726#p1726</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Двумерный массив]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1725#p1725" />
			<content type="html"><![CDATA[<p>В вашем случае {переменная1, переменная2, ... переменнаяN} тоже массив с ключами [1],[2]...[N]</p><p>m = {<br />[1] = {переменная1, переменная2, ... переменнаяN},<br />[2] = {переменная1, переменная2, ... переменнаяN},--запятую не забываем ставить<br />..<br />[N] = {переменная1, переменная2, ... переменнаяN}--в последнем элементе можно не ставить<br />}<br />поэтому обращение к ячейкам:<br />per1_1 = m[1][1]--из m[1]</p><p>per1_2 = m[2][1]--из m[2]</p><p>mapN= m[#m]--эквивалентно m[N]<br />per_N = mapN[#mapN]</p><p>Вот таким способом:<br />m[1][&quot;переменная1&quot;] = 1</p><p>вы превратите массив хранящийся в m[1]&nbsp; в таблицу луа и длину таблицы #mapN-способом не узнать:<br />{[&quot;переменная1&quot;]&nbsp; = 1,&nbsp; [1] = переменная1,&nbsp; [2] = переменная2,.. [N] = переменнаяN}</p>]]></content>
			<author>
				<name><![CDATA[kalikazandr]]></name>
				<uri>https://quik2dde.ru/profile.php?id=208</uri>
			</author>
			<updated>2015-10-26T21:28:14Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1725#p1725</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Двумерный массив]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1724#p1724" />
			<content type="html"><![CDATA[<p>Что-то я совсем запутался - как объявить двумерный массив типа:<br />m = { <br />{переменная1, переменная2, ... переменнаяN},<br />{переменная1, переменная2, ... переменнаяN}<br />..<br />{переменная1, переменная2, ... переменнаяN}<br />}<br />Чтобы потом можно было обращаться к переменным как к ячейкам двумерного массива:<br />m[1][&quot;переменная1&quot;] = 1<br />??</p>]]></content>
			<author>
				<name><![CDATA[Metallurg]]></name>
				<uri>https://quik2dde.ru/profile.php?id=226</uri>
			</author>
			<updated>2015-10-26T19:36:20Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1724#p1724</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Двумерный массив]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1308#p1308" />
			<content type="html"><![CDATA[<p><strong>slkumax</strong>,<br />Ваши вопросы где-то на самом начальном уровне знакомства с программированием. Потратьте&nbsp; немного своего времени максимально рационально, на учебники по LUA на достаточно доступном языке изложения. Например на эти<br />[url]http://ilovelua.narod.ru/about_lua.html[/url]<br />[url]http://www.script-coding.com/Lua.html[/url]<br />[url]http://steps3d.narod.ru/tutorials/lua-tutorial.html[/url]<br />На выбор. А лучше все, один за одним.</p>]]></content>
			<author>
				<name><![CDATA[GREEN_X5]]></name>
				<uri>https://quik2dde.ru/profile.php?id=206</uri>
			</author>
			<updated>2015-05-01T15:24:53Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1308#p1308</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Двумерный массив]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1306#p1306" />
			<content type="html"><![CDATA[<p>-</p>]]></content>
			<author>
				<name><![CDATA[sam063rus]]></name>
				<uri>https://quik2dde.ru/profile.php?id=228</uri>
			</author>
			<updated>2015-05-01T15:10:12Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1306#p1306</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Двумерный массив]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1305#p1305" />
			<content type="html"><![CDATA[<p>Для простоты пишу print, понятно, что это вывод на экран указанного содержимого.</p><div class="codebox"><pre><code>T = {{11,12,13},{21,22,23},{31,32,33}}

print (T[1][3]) -- выведет 13
print (T[2][1]) -- выведет 21

-- можно создавать даже массивы не прямоугольной (неоднородной) размерности:

T = {{11,12,13,14,15},{21,22},{31,32,33,34}}

print (T[1][3])  -- выведет 13
print (T[1][5])  -- выведет 15
print (T[2][2])  -- выведет 22
print (T[3][4])  -- выведет 34
print (T[2][8])  -- ошибки не будет, выведет nil, такого элемента [8] нет, но по индексу [2] у нас таблица, так что применять операцию &quot;взятия элемента по индексу&quot; можно
print (T[4][5])  -- при наличии такой строки скрипт остановится с ошибкой &quot;attempt to index field &#039;?&#039; (a nil value)&quot;, здесь у нас для первого индекса 4 уже нет элемента в таблице, т.е. nil, а мы к этому nil, т.е. не таблице, пытаемся индексироваться [5], это уже ошибка</code></pre></div><p>Фактически многомерный массив - это таблица, элементами которой тоже являются таблицы.</p>]]></content>
			<author>
				<name><![CDATA[swerg]]></name>
				<uri>https://quik2dde.ru/profile.php?id=78</uri>
			</author>
			<updated>2015-05-01T14:30:48Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1305#p1305</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Двумерный массив]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=1304#p1304" />
			<content type="html"><![CDATA[<p>Перекопал везде информацию. Нигде адекватно так и не написано, как создать обычный двумерный массив.<br />Массив <br />BAZA={}<br />Чтобы потом как в нормальном языке обратиться к элементу<br /> BAZA[x][y]=q</p>]]></content>
			<author>
				<name><![CDATA[slkumax]]></name>
				<uri>https://quik2dde.ru/profile.php?id=135</uri>
			</author>
			<updated>2015-05-01T10:33:39Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=1304#p1304</id>
		</entry>
</feed>
