Страница: 1 |
Страница: 1 |
Вопрос: Проверка на то что дин. массив удален
Добавлено: 02.07.04 09:40
Автор вопроса: Андрей Никитин | ICQ: 325172082
Как проверить (и можно ли), что динамическому массиву был сделан Erase? Проверка через обработчик ошибки не подходит, так как надо условие вставить в if ...
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #1
Добавлено: 02.07.04 16:42
Создай функцию, к примеру:
Public Function UboundS(ByRef sArray() as String) as long
On Error Resume Next
UboundS = &HFFFF: UboundS = UBound(sArray)
end sub
И используй ее в своей программы заместо UBound()
Номер ответа: 2
Автор ответа:
Андрей Никитин
ICQ: 325172082
Вопросов: 3
Ответов: 81
Профиль | | #2
Добавлено: 02.07.04 18:14
Спасибо за направление.
Сделал так:
Public Function IsEmptyArray(ByRef arrSource() as Variant) as boolian
dim iUpperBound as Long
On Error goto EmptyArray
iUpperBound = UBound(arrSource)
IsEmptyArray = False
Exit Function
EmptyArray:
IsEmptyArray = True
End Function
Теперь можно использовать:
if IsEmptyArray(arrMyArray) then...
Номер ответа: 3
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #3
Добавлено: 02.07.04 19:46
у меня короче
к тому же тут с пом. этой функции можно делать удобный ReDim Preserve...
Например:
for i=0 to x
redim preserve(UBoundS(sArr) + vbNull)
sArr(UBound(sArr)) = ...
next
да и недолго проверить на пустоту
if UBoundS(sArray) = &HFFFF then exit sub/function