Страница: 1 |
Страница: 1 |
Вопрос: Массив в массив...
Добавлено: 06.04.07 17:44
Автор вопроса: »VladikComper« | Web-сайт:
Пишу программу...
... и столкнулся с трудностью... В программе есть модуль, а в нем функция, так вот результат ее работы записывается в массив!!!
Ну раз функция дает массив, его значения и надо в массив записывать:
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-сайт:
Профиль | | #2
Добавлено: 06.04.07 20:06
Я в работе с реестром новичок...
Номер ответа: 3
Автор ответа:
»VladikComper«
ICQ: 419668582
Вопросов: 23
Ответов: 147
Web-сайт:
Профиль | | #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-сайт:
Профиль | | #8
Добавлено: 13.08.10 15:17
Кстати, да
Номер ответа: 9
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #9
Добавлено: 13.08.10 16:26