![]() |
|
Модераторы: Akina |
![]()
|
|
| JUmPER |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 22.8.2006 Репутация: 1 Всего: 3 |
как сделать массив несодержащим элементы?
при option base это просто ReDim myarray(0) а без него? я ему и null, и nothing пробовал присвоить -- не хочет работать... похожая проблема:
как потом проверить, что массив пуст? (в окне Locals значения вообще нет, т.е ячеёка пуста) --------------------
Существует 10 типов людей: те, которые понимают двоичную систему, и те, которые ее не понимаютСуществует 10 типов людей: те, кто понимают троичную систему, те, кто ее не понимают и те, кто путает ее с двоичной |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
При option base 0 это просто ReDim myarray(0)
При option base 1 это просто ReDim myarray(1) При отсутствии option base 0 это просто ReDim myarray(0) -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| JUmPER |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 22.8.2006 Репутация: 1 Всего: 3 |
вообще без option base
redim myarray(0) делает массив из одного элемента (с индексом "0") этот код работает без ошибок и caption меняется...
--------------------
Существует 10 типов людей: те, которые понимают двоичную систему, и те, которые ее не понимаютСуществует 10 типов людей: те, кто понимают троичную систему, те, кто ее не понимают и те, кто путает ее с двоичной |
|||
|
||||
| ~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 10 Всего: 68 |
JUmPER, Бэйсик не позволяет работать с неинициализированными массивами. Этоже не объект в конце концов. Да и вообще я слабо представяю кто позволяет.
Кстати она тоже не пуста, в выделеной под массив области памяти лежит всякая фигня, дальше компилер заменяет все значения в во всех элиментах на дефолтные - если числовой, то нулями, если строковой то нультерминейтед стринг и т.д. И получаем мы проиниченый массив, готовый для работы. А если не секрет, зачем тебе это? Это сообщение отредактировал(а) ~FoX~ - 28.9.2006, 14:55 |
|||
|
||||
| JUmPER |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 22.8.2006 Репутация: 1 Всего: 3 |
например:
redim может не выполниться не разу, что и даёт в результать неинициализированный массив --------------------
Существует 10 типов людей: те, которые понимают двоичную систему, и те, которые ее не понимаютСуществует 10 типов людей: те, кто понимают троичную систему, те, кто ее не понимают и те, кто путает ее с двоичной |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Слушай, у тебя какая-то ахинея получается... давай-ка поподробнее, чего ты там ворочаешь с этим массивом.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| JUmPER |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 22.8.2006 Репутация: 1 Всего: 3 |
массив определятся вверху функции (dim a() as long)
потом в него возможно добаляются элементы (перед добавлением используется redim) потом этот массив (определённый, но, возможно, не инициализированный) возвращается как результат функции --------------------
Существует 10 типов людей: те, которые понимают двоичную систему, и те, которые ее не понимаютСуществует 10 типов людей: те, кто понимают троичную систему, те, кто ее не понимают и те, кто путает ее с двоичной |
|||
|
||||
| mihanik |
|
|||
![]() -=Белый Медведь=- ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 4054 Регистрация: 24.4.2006 Где: г. Тверь Репутация: 11 Всего: 109 |
Значит я понимаю так.
Если ты единожды сделал какой-либо REDIM массиву, то он уже НИКОГДА (!!!!) не сможет стать массивом без элементов. Это ограничение транслятора. И если ты хочешь, чтобы программа знала какой массив возвращается функцией ("с элементами" или "без элементов"), то тебе надо завсети глобальную булевскую переменную и уже анализировать её содержимое. False - массив пуст. Даже лазать в него не стоит True - массив не пуст, будем его обрабатывать... По-другому решений не вижу. Добавлено @ 16:04 Кроме того!!! Можно определить инициализирован массив или нет следующей фишкой. Пытаешься сначала определить размер массива функцией UBound. Если произошла ошибка, то массив не инициализирован. Если ошибки не произошло, то производился REDIM |
|||
|
||||
| JUmPER |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 22.8.2006 Репутация: 1 Всего: 3 |
спасибо
примерно так и сделал --------------------
Существует 10 типов людей: те, которые понимают двоичную систему, и те, которые ее не понимаютСуществует 10 типов людей: те, кто понимают троичную систему, те, кто ее не понимают и те, кто путает ее с двоичной |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |