Страница: 1 |
Вопрос: Массив в массив... | Добавлено: 06.04.07 17:44 |
Автор вопроса: ![]() |
Пишу программу...
... и столкнулся с трудностью... В программе есть модуль, а в нем функция, так вот результат ее работы записывается в массив!!! Ну раз функция дает массив, его значения и надо в массив записывать: 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 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 1876 ![]() |
Профиль | Цитата | #1 | Добавлено: 06.04.07 18:56 |
По ходу, автор совершенно не имеет ни малейшего представления о том, что делает этот код и как его использовать, равно как путает понятия "массив" и "элемент массива", да ещё и кошмарно использует GoTo...
Как тут помочь, кроме как сказать "иди учи заново с нуля"? :roll: |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ICQ: 419668582 Вопросов: 23 Ответов: 147 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 06.04.07 20:06 |
Я в работе с реестром новичок... |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ICQ: 419668582 Вопросов: 23 Ответов: 147 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 06.04.07 20:10 |
Да, ч догадывался, что код никудышный...
Просто не знаю, как идею провернуть... А всего-то в список List1 все подпапки ключа записать... |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 0 Ответов: 454 |
Профиль | Цитата | #4 | Добавлено: 06.04.07 20:25 |
Влад, ну нельзя же так.
Присвоение элементу массива (каждый элемент которого объявлен как String) возвращенных данных из неизвестной функции GetRegKeys, которая, возможно, возвращает Variant c неизвестным подтипом данных. И после этого ожидать в "key()" некоего итога. P.S. Странный цикл с использованием GoTo. |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 1876 ![]() |
Профиль | Цитата | #5 | Добавлено: 06.04.07 20:51 |
Я в работе с реестром новичок
Прикинь, здесь не в реестре дело. А в совершенно других азах. |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик 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 Автор ответа: ![]() ![]() Вопросов: 0 Ответов: 1 |
Профиль | Цитата | #7 | Добавлено: 20.03.09 19:31 |
А как на VB 2005 в функции возвращать массив? Variant там нет. |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 2 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 13.08.10 15:17 |
Кстати, да |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #9 | Добавлено: 13.08.10 16:26 |
|
Страница: 1 |
|