1

Тема: VBS: Доступ к объекту через массив vbscript

Уважаемые форумчане, нужен совет - как в массив vbscript добавить объект. Вот пример:


dim my_class
dim new_arr(3)
 
' Создаем класс new_class
Class new_class
     ' глобальная видимость
     dim a, b, c
End Class
 
' создаем ссылку на экземпляр vbs класса new_class
set my_class = new new_class

 
'Заполняем свойства
with my_class
     .a = 200
     .b = 500
     .c = 300
end with

new_arr(0) = 0
new_arr(1) = "строка"
' ошибка!!!
new_arr(2) = my_class


MsgBox new_arr(2).a

Очень нужна помощь.

2 (изменено: max7, 2013-08-07 18:12:36)

Re: VBS: Доступ к объекту через массив vbscript

Присвоение объектов в VBS должно предварятся ключевым словом SET.
Должно быть так:

Set new_arr(2) = my_class

В интернете пишут:

Оператор SET используется в VB*-языках, когда идет присваивание объектов, а не встроенных числовых или строковых типов. Отвечает он действительно за подсчет ссылок, так как любой класс VB является COM-объектом (хотя все это и скрыто). Одна из особенностей VB, которую портировали в VBScript.

3

Re: VBS: Доступ к объекту через массив vbscript

Можно конечно сделать так:


dim my_class
dim new_arr(3)
 
' Создаем класс new_class
Class new_class
     ' глобальная видимость
     dim a, b, c
End Class
 


new_arr(0) = 0
new_arr(1) = "строка"
set new_arr(2) = new new_class


MsgBox new_arr(2).a

Но мне надо сначала заполнить свойства объекта, а уже потом добавить объект в массив

4

Re: VBS: Доступ к объекту через массив vbscript

Полный текст:

dim my_class
dim new_arr(3)
 
' Создаем класс new_class
Class new_class
     ' глобальная видимость
     dim a, b, c
End Class
 
' создаем ссылку на экземпляр vbs класса new_class
set my_class = new new_class

 
'Заполняем свойства
with my_class
     .a = 200
     .b = 500
     .c = 300
end with

new_arr(0) = 0
new_arr(1) = "строка"
' ошибка!!!
Set new_arr(2) = my_class ' <<<<<<<<<<<<<<<<<<<<<<< 


MsgBox new_arr(2).a

5

Re: VBS: Доступ к объекту через массив vbscript

Спасибо!!! То что надо!!!