<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBScript: Динамическое создание имен переменных или массивов]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5160&amp;type=atom" />
	<updated>2010-11-16T18:27:26Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=5160</id>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Динамическое создание имен переменных или массивов]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41772#p41772" />
			<content type="html"><![CDATA[<p>Dictionary - хороший инструмент для Вашего случая.<br />Его можно представить как двухстолбцовую таблицу (двумерный массив). Левый столбец - ключ (индекс), например, имя компьютера, которое уникально в этой сети, а правый - значение, связанное с этим ключём (именем), в том числе и длинное предложение, полученное сцеплением строк.<br />При этом не надо заботиться о том, что размерности обычного массива может и не хватить. Просто добавь в Dictionary ещё один ключ (имя компьютера) и информацию по нему.<br />Далее фантазируй ...&nbsp; информацию можно записать в текстовый файл и при загрузке, например, другим скриптом, извлекать по имени компьютера или узнавать, есть ли в сети компьютер с заданным именем, или, создавать список имён компьютеров, которые конкретно надо отсканировать, или, помещая в первых символах дату сканирования, задавать сканирование только для устаревших данных, ...&nbsp; :-).</p>]]></content>
			<author>
				<name><![CDATA[Victor]]></name>
			</author>
			<updated>2010-11-16T18:27:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41772#p41772</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Динамическое создание имен переменных или массивов]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41561#p41561" />
			<content type="html"><![CDATA[<p>МДА...<br />Все ЭЛЕМЕТАРНО...<br />Я так и не врубился как работать с Dictionary, точнее каким образом мне его сюда применять, но я совершенно забыл про то что VBS имеет возможность работать с многомерными массивами:<br />Теперь все просто:<br />Dim Database(100,10)<br />...<br />Database(Computer,i) = myMatch</p>]]></content>
			<author>
				<name><![CDATA[Real Root]]></name>
			</author>
			<updated>2010-11-12T22:40:42Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41561#p41561</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Динамическое создание имен переменных или массивов]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41539#p41539" />
			<content type="html"><![CDATA[<p>Нужно использовать тег <a href="http://forum.script-coding.com/help.php">code</a> для оформления постов. Свой созданный пост можно отредактировать.</p><p>По теме: вместо создания имён переменных всегда можно использовать (вложенные) массивы разного рода, например, <a href="http://www.script-coding.com/WSH/Dictionary.html">Dictionary</a>.</p>]]></content>
			<author>
				<name><![CDATA[The gray Cardinal]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2</uri>
			</author>
			<updated>2010-11-12T12:30:54Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41539#p41539</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBScript: Динамическое создание имен переменных или массивов]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41537#p41537" />
			<content type="html"><![CDATA[<p>Здравствуйте товарищи.<br />Помогите решить следующую проблему:<br />На CMD можно динамически создавать нужные переменные, например так:<br />for /l %%A (1,1,10) do (<br />SET Comp-%%A = %%A<br />)<br />В данном случае будет 10 переменных Comp-1, Comp-2, ... , Comp-10<br />Помогите сделать то же самое на VBScript<br />Как сделать нечто похожее - ума не приложу.</p><br /><p>Для чего это нужно:<br />Пишу программку инвентаризации компов по сети.<br />На каждом компе есть расшаренная папка reports$ с отчетом сгенерированным программой Aida64 (бывший Everest).<br />В этом отчете (report.ini) перечислены материнка, проц и т.д.<br />Я хочу сделать так:<br /></p><div class="codebox"><pre><code>MyArray = Array(&quot;CPU Type=&quot;, &quot;Motherboard\|Motherboard Name=&quot;, ... )
ColComputers = Array(&quot;1&quot;, &quot;2&quot;, &quot;11&quot;) &#039;ip-адреса компов
For Each Computer in ColComputer
Set objFile = objFSO.OpenTextFile(&quot;\\192.168.1.&quot; &amp; Computer &amp; &quot;\reports$\report.ini&quot;, ForReading)
...
...
...
i = 0
For Each element In MyArray
i = i + 1
Set regEx = New RegExp
...
...
...
Set myMatches = RegEx.Execute(objFile.ReadAll)
For Each myMatch In myMatches
[b]  Comp_(Computer)(i) = myMatch - &#039; Вот как тут динамически менять имя массива куда будут складываться значения myMatches. Нужно чтобы получалось нечто Comp_1(1) или Comp_11(1) и т.д.[/b]
  Next
Next
Next</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Real Root]]></name>
			</author>
			<updated>2010-11-12T12:15:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41537#p41537</id>
		</entry>
</feed>
