Как проверить что массив инициализирован?
От: Kaifa Россия  
Дата: 01.11.17 13:33
Оценка:
есть, допустим

Dim a() As String



как условие написать, чтоб не заходить в блок, если я его так и не инициализирую?
Re: Как проверить что массив инициализирован?
От: kov_serg Россия  
Дата: 01.11.17 14:38
Оценка:
Здравствуйте, Kaifa, Вы писали:

K>
K>Dim a() As String
K>

K>как условие написать, чтоб не заходить в блок, если я его так и не инициализирую?
Например так
Function HasData(a)
    res = False
    On Error Resume Next
    res = UBound(a) >= 0 Or True
    HasData = res
End Function
...
if HasData(a) then ...
Re: Как проверить что массив инициализирован?
От: yenik  
Дата: 02.11.17 08:12
Оценка:
K>
K>Dim a() As String

K>



K>как условие написать, чтоб не заходить в блок, если я его так и не инициализирую?


Бейсик-то какой? Если VB.NET, то так:
        Dim a As String()

        If Not a Is Nothing Then
           ' do things
        End If


Если типа FreeBasic, то так:

Dim a() As String

If UBound(a) > 0 Then
    ' do things
End If
Re[2]: Как проверить что массив инициализирован?
От: kov_serg Россия  
Дата: 03.11.17 18:12
Оценка:
Здравствуйте, yenik, Вы писали:

Y>Бейсик-то какой? Если VB.NET, то так:

Y>
Y>        Dim a As String()

Y>        If Not a Is Nothing Then
Y>           ' do things
Y>        End If
Y>


Y>Если типа FreeBasic, то так:


Y>
Y>Dim a() As String

Y>If UBound(a) > 0 Then
Y>    ' do things
Y>End If
Y>

Подозреваю что VBA там оба варианта пролетают
Re: Как проверить что массив инициализирован?
От: Vi2 Удмуртия http://www.adem.ru
Дата: 05.11.17 13:30
Оценка: 19 (2) :)
Здравствуйте, Kaifa, Вы писали:

K>есть, допустим

K>Dim a() As String

K>как условие написать, чтоб не заходить в блок, если я его так и не инициализирую?

If (Not a) = -1 Then
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re[2]: Как проверить что массив инициализирован?
От: kov_serg Россия  
Дата: 05.11.17 15:08
Оценка:
Здравствуйте, Vi2, Вы писали:

Vi2>Здравствуйте, Kaifa, Вы писали:


Vi2>If (Not a) = -1 Then

Шикарное приведение типов
If (Not a) <> (Not 0) Then
  ub=UBound(a)
End if

js нервно курит
Re[3]: Как проверить что массив инициализирован?
От: Kaifa Россия  
Дата: 09.11.17 10:09
Оценка:
Y>>If UBound(a) > 0 Then
Y>> ' do things
Y>>End If
Y>>[/vb]
_>Подозреваю что VBA там оба варианта пролетают

фиг там ubound(a) кидает исключение, если массив только объявлен, но не инициализирован.
так что только с перехватом исключения проканало.
просто думал есть менее извратный способ
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.