Страница: 1 |
Спасибо за предложения но ни один меня не удовлетворил Использование механизма On Error слишком дергает всю OS систему. По этой причине стараюсь по возможности избегать его UBound() использовать нельзя из за пустого массива. При пустом массиве он вызовет ошибку. Можно использовать счётчик элементов в массиве но при имплеминтации интерфейсов это не удобно. Обязательно должен возвращать не пустой массив Думаю что решение без последнего высказывания нету. Если всё же кто найдёт решение буду очень благодарен Многие не поняли вопроса наверно из за недостаточной ясности Поэтому напишу немного детальнее Основная задача Имеется группа объектов имплиментирующих некий интерфейс IString В него входит функция, возвращающая массив строк Придется в каждом объекте использовать или счетчик или On Error Что очень непрактично и неудобно. Другими инструментами языка По видимому нельзя, не предусмотрели наверное. Пример: Dim ar() As String Ar = GetStrArray() Function GetStrArray() As String() Dim a() As String …. GetStrArray = a End Function
Ты хочешь сказать что у тебя в коде нет ни одного блока On Error Goto EH или On Error Resume Next ?Как же у тебя программа работает ? Она должна вылететь после первой же ошибки ... Ты , Evard, тут всё прaвильнo нaписaл. Dim varStr As Variant varStr = GetStrArray '1)мoжнo тaк прoверить If IsEmpty(varStr) Then 2)a мoжнo эдaк If IsArray(varStr) Then 'Твoя функция Public Function GetStrArray() As Variant 'Fill varrString GetStrArray = varrString Страница: 1 |
Вопрос: Размер типиз. динамич. масива
Добавлено: 09.07.02 10:08
Автор вопроса: Evard
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа:
Strannik
Вопросов: 9
Ответов: 112
Профиль | | #1
Добавлено: 09.07.02 12:31
Номер ответа: 2
Автор ответа:
Stan
Вопросов: 0
Ответов: 12
Профиль | | #2
Добавлено: 10.07.02 13:49
Решения для твoегo кoнкретнoгo примерa
крoме On Error нету. Нo есть вoзмoжнoсть
нaписaть этo пo другoму,испoльзуя тип
Variant. Не знaю,пoдoйдёт ли этo тебе -
чтo тaкoе Variant все знaют,нo в дaннoм
случaе oн единственный пoзвoляет избежaть
испoльзoвaние On Error и счётчикoв.
Пример:
MsgBox "Array was not initialized"
Else
MsgBox "UBound: " & UBound(varStr)
End If
MsgBox "UBound: " & UBound(varStr)
Else
MsgBox "Array was not initialized"
End If
Dim varrString As Variant
ReDim varrString(1)
varrString(0) = "Gaga"
varrString(1) = "Lala"
End Function