Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Интернет-языки

Страница: 1 |

 

  Вопрос: Массив в массив... Добавлено: 06.04.07 17:44  

Автор вопроса:  »VladikComper« | Web-сайт: vladikcomper.narod.ru | ICQ: 419668582 
Пишу программу...
... и столкнулся с трудностью... В программе есть модуль, а в нем функция, так вот результат ее работы записывается в массив!!!
Ну раз функция дает массив, его значения и надо в массив записывать:

Dim key() As String, b As Long
b = 0
a:
ReDim key(b)
key(b) = GetRegKeys(HKEY_CLASSES_ROOT, "*\shellex\ContextMenuHandlers")
b = b + 1
If key(b) <> "" Then GoTo a

Но беда: Run time Error '13': Несовпадение типов...
А если функцию в обычную переменную записывать, то появится только первое значение массива... Как быть...

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #1 Добавлено: 06.04.07 18:56
По ходу, автор совершенно не имеет ни малейшего представления о том, что делает этот код и как его использовать, равно как путает понятия "массив" и "элемент массива", да ещё и кошмарно использует GoTo...
Как тут помочь, кроме как сказать "иди учи заново с нуля"? :roll:

Ответить

Номер ответа: 2
Автор ответа:
 »VladikComper«



ICQ: 419668582 

Вопросов: 23
Ответов: 147
 Web-сайт: vladikcomper.narod.ru
 Профиль | | #2
Добавлено: 06.04.07 20:06
Я в работе с реестром новичок...

Ответить

Номер ответа: 3
Автор ответа:
 »VladikComper«



ICQ: 419668582 

Вопросов: 23
Ответов: 147
 Web-сайт: vladikcomper.narod.ru
 Профиль | | #3
Добавлено: 06.04.07 20:10
Да, ч догадывался, что код никудышный...
Просто не знаю, как идею провернуть...
А всего-то в список List1 все подпапки ключа записать...

Ответить

Номер ответа: 4
Автор ответа:
 EUGY



Вопросов: 0
Ответов: 454
 Профиль | | #4 Добавлено: 06.04.07 20:25
Влад, ну нельзя же так.
Присвоение элементу массива (каждый элемент которого объявлен как String) возвращенных данных из неизвестной функции GetRegKeys, которая, возможно, возвращает Variant c неизвестным подтипом данных.
И после этого ожидать в "key()" некоего итога.

P.S. Странный цикл с использованием GoTo.

Ответить

Номер ответа: 5
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #5 Добавлено: 06.04.07 20:51
Я в работе с реестром новичок

Прикинь, здесь не в реестре дело. А в совершенно других азах.

Ответить

Номер ответа: 6
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #6 Добавлено: 06.04.07 22:29
Вернуть массив можно только как Variant, т.е. ф-ция твоя должна возвращать тип Variant. Но имхо это криво как-то, гораздо проще возвращать массив через параметр, как byref...

sub GetArray (byval arg1$, byval arg2$, ReturnArray() as String)
...
end sub
---

Dim tmpArr() as String
Call GetArray ("lala", "lalal", tmpArr)

Ответить

Номер ответа: 7
Автор ответа:
 Roman-vb



Вопросов: 0
Ответов: 1
 Профиль | | #7 Добавлено: 20.03.09 19:31
А как на VB 2005 в функции возвращать массив? Variant там нет.

Ответить

Номер ответа: 8
Автор ответа:
 katerina1989



Вопросов: 0
Ответов: 2
 Web-сайт: www.alemarestate.ru
 Профиль | | #8
Добавлено: 13.08.10 15:17
Кстати, да

Ответить

Номер ответа: 9
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #9 Добавлено: 13.08.10 16:26
  1. Public Function GetData () As String()

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам