Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ubound / 8 сообщений из 8, страница 1 из 1
14.09.2006, 11:25
    #33986380
ech
ech
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ubound
Подскажите пожалуйста почему ругается Ubound на неопределенном массиве, как проверить массив на то что он неопределенный? Как обнуляются массивы?
...
Рейтинг: 0 / 0
14.09.2006, 12:00
    #33986528
ech
ech
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ubound
up
...
Рейтинг: 0 / 0
14.09.2006, 12:03
    #33986536
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ubound
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    ' так можно проверить
    Dim myArr()
    On Error Resume Next
    m = myArr( 0 )
    If Err Then MsgBox "Неопределён"
    On Error GoTo  0 
    ' а так обнулить
    ReDim myArr( 0 )
...
Рейтинг: 0 / 0
14.09.2006, 12:08
    #33986555
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ubound
авторКак обнуляются массивы?Erase
...
Рейтинг: 0 / 0
14.09.2006, 12:10
    #33986561
miki1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ubound
могу предложить такое решение

'Декларация
Private Declare Function ArrPtr Lib "msvbvm60.dll" Alias "VarPtr" (ptr() As Any) As Long
Private Declare Sub RtlMoveMemory Lib "kernel32" (dst As Any, src As Any, ByVal nBytes&)



'функция проверки
Private Function IsEmptyArray(ByVal ptr As Long) As Boolean
Dim myPtr As Long
RtlMoveMemory myPtr, ByVal ptr, 4
IsEmptyArray = IIf(myPtr = False, True, False)
End Function


'Использование функции
' -1 пусто
'arrTest -массив

Private Function GetUbound() as Long
Dim i As Integer
If Not IsEmptyArray(ArrPtr(arrTest)) Then
i = UBound(arrTest)
Else
i = -1
End If

GetUbound=i
End Function



Erase ArrName - обнуление массива
...
Рейтинг: 0 / 0
14.09.2006, 13:36
    #33987019
Melkiades
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ubound
miki1могу предложить такое решение

Не рекомендовал бы использовать такое решение. Зачем лишний раз издеваться над памятью?
...
Рейтинг: 0 / 0
14.09.2006, 14:43
    #33987397
ech
ech
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ubound
всем спасибо
...
Рейтинг: 0 / 0
14.09.2006, 15:50
    #33987782
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ubound
попробуй посмотреть isarray или isnothing может поможет.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ubound / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]