Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: ПУст ли массив. Добавлено: 10.03.07 20:16  

Автор вопроса:  Ratu.R
myArr = Array(1)
mYs = Filter(myArr, 2, , vbTextCompare)

если выполнить mYs(0) то естественно сразу выскочит ошибка. Как проверить, что mYs пуст?

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 -=Fenix=-



Вопросов: 33
Ответов: 81
 Профиль | | #1 Добавлено: 10.03.07 20:59
IsArray(массив)

Ответить

Номер ответа: 2
Автор ответа:
 EUGY



Вопросов: 0
Ответов: 454
 Профиль | | #2 Добавлено: 10.03.07 21:03
Debug.Print UBound(mYs, 1) '-1

Ответить

Номер ответа: 3
Автор ответа:
 Ratu.R



Вопросов: 8
Ответов: 19
 Профиль | | #3 Добавлено: 10.03.07 21:47
To Fenix: и что ты предлагаешь? Естественно mYs будет массивом, только пустым.
To EUGY: а оно всегда работает? Т.е. если он пуст, то значение будет -1, а если полон, то будет принимать иное значение?

Ответить

Номер ответа: 4
Автор ответа:
 Fever



Вопросов: 60
Ответов: 808
 Профиль | | #4 Добавлено: 10.03.07 23:32
To Fenix: исключительно для динамических массивов
To EUGY: А если динамический пустой, то пошлет вас на 3 ... 4 стороны =)
To Ratu.R: Используй оба способа + проверка на ошибки

Ответить

Номер ответа: 5
Автор ответа:
 EUGY



Вопросов: 0
Ответов: 454
 Профиль | | #5 Добавлено: 11.03.07 17:10
To Ratu.R:
   в данном случае - работает всегда.
   ф-ция Filter всегда возвращает Zero-bazed массив (даже пустой).

Ответить

Номер ответа: 6
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #6 Добавлено: 11.03.07 19:26
EUGY, массив не может быть одновременно Zero-bazed и пустым. И в VB6 Ubound не вернёт -1 для пустого массива. Не путай с .net.

Ответить

Номер ответа: 7
Автор ответа:
 EUGY



Вопросов: 0
Ответов: 454
 Профиль | | #7 Добавлено: 11.03.07 19:59
я не чего и не путаю.

myArr = Array(1)
mYs = Filter(myArr, 2, , vbTextCompare)

я предположил, что в этом отрывке
объявлены myArr и mYs as Variant,
потом сверился с MSDN

Filter Function
Returns a zero-based array containing subset of a string array based on a specified filter criteria.

Remarks
If no matches of match are found within sourcearray, Filter returns an empty array. An error occurs if sourcearray is Null or is not a one-dimensional array.

The array returned by the Filter function contains only enough elements to contain the number of matched items.

итак, если только сам myArr не пустой, то
след. код рабочий

Dim myArr As Variant
Dim mYs As Variant
myArr = Array(1, 3, 4, 5)
mYs = Filter(myArr, 2, , vbTextCompare)
Debug.Print IIf(UBound(mYs) < 0, "", "не";) & "пусто"

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам