<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS: не получается сделать массив структур с массивом )]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=13559&amp;type=atom" />
	<updated>2018-03-25T13:35:12Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=13559</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS: не получается сделать массив структур с массивом )]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=124233#p124233" />
			<content type="html"><![CDATA[<p>Да в принципе надо было получить то - что получилось, без разницы как это называть.)) Получился динамический массив &quot;объектов&quot; и в каждом еще по одному динамическому массиву... Добавив в &quot;структуру&quot; конструктор и метод, в принципе получил класс))<br />Просто писать на vbs самый, в настоящий момент, удобный вариант, а синтаксис я его не шибко хорошо знаю, так что еще раз спасибо за помощь!</p>]]></content>
			<author>
				<name><![CDATA[badhabit]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=34352</uri>
			</author>
			<updated>2018-03-25T13:35:12Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=124233#p124233</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: не получается сделать массив структур с массивом )]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=124232#p124232" />
			<content type="html"><![CDATA[<p><strong>badhabit</strong>, рад, что пригодилось. Вообще, ИМХО, VBS классы больше подразумеваются под объектную модель, нежели под структуры. Возможно Вашу задачу можно решить иначе. Если поведаете о конечной цели, возможно смогу посоветовать что-то более подходящее.</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2018-03-25T12:19:00Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=124232#p124232</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: не получается сделать массив структур с массивом )]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=124227#p124227" />
			<content type="html"><![CDATA[<p><strong>Xameleon</strong>, спасибо большое. Все заработало. Вот ещё ссылка по теме <a href="https://stackoverflow.com/questions/48067183/resizing-an-array-inside-of-an-object-in-vbscript">https://stackoverflow.com/questions/480 … n-vbscript</a></p>]]></content>
			<author>
				<name><![CDATA[badhabit]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=34352</uri>
			</author>
			<updated>2018-03-25T07:45:39Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=124227#p124227</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: не получается сделать массив структур с массивом )]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=124195#p124195" />
			<content type="html"><![CDATA[<p><strong>badhabit</strong>,<br /></p><div class="quotebox"><cite>badhabit пишет:</cite><blockquote><p>Xameleon, так я привёл весь скрипт, просто проскролить надо, в самом низу есть объявление класса struct</p></blockquote></div><p>Прошу прощения. Не заметил.</p><p>Тогда вот так можно сделать:<br /></p><div class="codebox"><pre><code>Option Explicit

Main

Function Main
	Dim arr(), i, propArray
	For i = 0 To 10
		ReDim Preserve arr(i)
		Set arr(i) = New struct
		arr(i).sVar1 = &quot;str&quot; &amp; i &amp; &quot; var1&quot;
		arr(i).sVar2 = &quot;str&quot; &amp; i &amp; &quot; var2&quot;
		
		Dim j
		propArray = arr(i).aArr
		For j = 0 To 10
			ReDim Preserve propArray(j)
			propArray(j) = 121212 + j
		Next
		arr(i).aArr = propArray		
	Next
	
	Dim k
	For i = 0 To UBound(arr)
		WScript.Echo &quot;i: &quot; &amp; i &amp; &quot; var1: &quot; &amp; arr(i).sVar1 &amp; &quot; var2: &quot; &amp; arr(i).sVar2
		Dim zzz
		zzz = arr(i).aArr
		For k = 0 To UBound(zzz) - 1
			WScript.Echo zzz(k)
		Next
	Next	 
	
End Function


Class struct
	Public aArr
	Public sVar1
	Public svar2
	Private Sub Class_Initialize()
		aArr = Array()
	End Sub
End Class</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2018-03-22T09:37:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=124195#p124195</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: не получается сделать массив структур с массивом )]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=124177#p124177" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>
Option Explicit

Main

Function Main
	Dim arr(), i, propArray
	For i = 0 To 10
		ReDim Preserve arr(i)
		Set arr(i) = New struct
		arr(i).sVar1 = &quot;str&quot; &amp; i &amp; &quot; var1&quot;
		arr(i).sVar2 = &quot;str&quot; &amp; i &amp; &quot; var2&quot;
		
		Dim j
		propArray = arr(i).aArr
		For j = 0 To 10
			ReDim Preserve propArray(j)
			propArray(j) = 121212 + j
		Next
		arr(i).aArr = propArray		
	Next
	
	Dim k
	For i = 0 To UBound(arr)
		WScript.Echo &quot;i: &quot; &amp; i &amp; &quot; var1: &quot; &amp; arr(i).sVar1 &amp; &quot; var2: &quot; &amp; arr(i).sVar2
		Dim zzz()
		zzz = arr(i).aArr
		For k = 0 To UBound(zzz) - 1
			WScript.Echo zzz(k)
		Next
	Next	 
	
End Function


Class struct
  Public aArr()
  Public sVar1
  Public svar2  
End Class
</code></pre></div><p>теперь ругается тут<br /></p><div class="quotebox"><blockquote><p>arr(i).aArr = propArray</p></blockquote></div><p>говрит<br />несоответствие типа</p>]]></content>
			<author>
				<name><![CDATA[badhabit]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=34352</uri>
			</author>
			<updated>2018-03-21T16:32:29Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=124177#p124177</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: не получается сделать массив структур с массивом )]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=124176#p124176" />
			<content type="html"><![CDATA[<p><strong>Xameleon</strong>, так я привёл весь скрипт, просто проскролить надо, в самом низу есть объявление класса struct<br />Пс. Ваш способ попробую</p>]]></content>
			<author>
				<name><![CDATA[badhabit]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=34352</uri>
			</author>
			<updated>2018-03-21T12:28:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=124176#p124176</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: не получается сделать массив структур с массивом )]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=124172#p124172" />
			<content type="html"><![CDATA[<p><strong>badhabit</strong>, а можно увидеть скрипт целиком ? А то объявления <strong>struct</strong> не видно.</p><p>На первый взгляд, как я понимаю, беда в том, что Вы пытаетесь &quot;редимить&quot; свойство объекта. К сожалению, VBScript хочет после Redim получить прямую ссылку на массив. Думаю в Вашем случае может помочь что-то типа:</p><div class="codebox"><pre><code>
Option Explicit

Main

Function Main
	Dim arr(), i, propArray
	For i = 0 To 10
		ReDim Preserve arr(i)
		Set arr(i) = New struct
		arr(i).sVar1 = &quot;str&quot; &amp; i &amp; &quot; var1&quot;
		arr(i).sVar2 = &quot;str&quot; &amp; i &amp; &quot; var2&quot;
		
		Dim j
		propArray = arr(i).aArr
		For j = 0 To 10
			ReDim Preserve propArray(j)
			propArray(j) = 121212 + j
		Next
		arr(i).aArr = propArray		
	Next
	
	For i = 0 To UBound(arr)
		WScript.Echo &quot;i: &quot; &amp; i &amp; &quot; var1: &quot; &amp; arr(i).sVar1 &amp; &quot; var2: &quot; &amp; arr(i).sVar2
	Next
	
End Function
</code></pre></div><p>Не уверен, что Вы выбрали правильный путь. Думаю всё-таки стоит взглянуть на всю картину целиком.</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2018-03-21T10:37:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=124172#p124172</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBS: не получается сделать массив структур с массивом )]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=124164#p124164" />
			<content type="html"><![CDATA[<p>Добрый день. Не знаю правильно ли я использовал терминологию в заголовке, все ж С/С++ ближе... Но есть потребность сделать динамический массив структур, в свою очередь каждая из которых тоже содержит &quot;мембером&quot; динамический массив... Попробовал вот так:<br /></p><div class="codebox"><pre><code>
Option Explicit

Main

Function Main
	Dim arr(), i
	For i = 0 To 10
		ReDim Preserve arr(i)
		Set arr(i) = New struct
		arr(i).sVar1 = &quot;str&quot; &amp; i &amp; &quot; var1&quot;
		arr(i).sVar2 = &quot;str&quot; &amp; i &amp; &quot; var2&quot;
		
		Dim j
		For j = 0 To 10
			ReDim Preserve arr(i).aArr(j)
			arr(i).aArr(j) = 121212 + j
		Next		
	Next
	
	For i = 0 To UBound(arr)
		WScript.Echo &quot;i: &quot; &amp; i &amp; &quot; var1: &quot; &amp; arr(i).sVar1 &amp; &quot; var2: &quot; &amp; arr(i).sVar2
	Next
	
End Function


Class struct
  Public aArr()
  Public sVar1
  Public svar2  
End Class
</code></pre></div><p>На строке </p><div class="quotebox"><blockquote><p>ReDim Preserve arr(i).aArr(j)</p></blockquote></div><p> валится с ошибкой: </p><div class="quotebox"><blockquote><p>Ошибка компиляции Microsoft VBScript: Предполагается наличие окончания инструкции</p></blockquote></div><p>Подскажите, что делаю не так...</p>]]></content>
			<author>
				<name><![CDATA[badhabit]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=34352</uri>
			</author>
			<updated>2018-03-20T20:46:44Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=124164#p124164</id>
		</entry>
</feed>
