![]() |
|
Модераторы: mihanik |
![]()
|
|
| Twwi |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 8.11.2005 Где: Домодедово Репутация: 1 Всего: 5 |
Друзья, у меня проблема с редекларацией массива
Ошибка: Subscript out of range (Error 9). СТрока 18 на момент ошибки у=1, предыдущее значение 0. Т.е. в массив final(0,5) строка занесена успешно (и редекларировлся он успешно), но увеличить размер массива до final(1,5) не может Это сообщение отредактировал(а) Twwi - 15.9.2006, 15:19 |
|||
|
||||
| Aloha |
|
||||
|
. ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 351 Регистрация: 14.5.2006 Репутация: 5 Всего: 165 |
Twwi
Проблема в следующем: при использовании ключевого слова Preserve можно изменять только верхнюю границу последней размерности многомерных массивов. Подробнее можно посмотреть, например, здесь:
На мой взгляд, надо поменять размерности массива final(). Например, такая конструкция работает:
Это сообщение отредактировал(а) Aloha - 15.9.2006, 16:55 |
||||
|
|||||
| ИгнатьевАлексей |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 369 Регистрация: 18.11.2005 Репутация: 2 Всего: 3 |
Да! Действительно та ки есть....
Но вот здесь http://msdn.microsoft.com/library/rus/defa.../vastmredim.asp я нашел фразу
Звучит логично. В данном случае, имхо, надо пользоваться способом работы с дин. массивами, который описан ввезде традиционно первым, т.е. сначала впервой группе циклов с неизв. количеством повторений определить полностью размерность массива, зетем ReDim, а потом - его заполнение при помощи For...Next. Я вообще то так и делал всегда, т.к. когда то прочитал , что второй способ (твой) проигрывает в быстродействии из-за многократного перераспределения памяти. Вот ты увидел и второй минус.... -------------------- Vingrad - FOREVER !!! "Как вы яхту назовете - так она и поплывет!" Капитан Врунгель |
|||
|
||||
| Twwi |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 8.11.2005 Где: Домодедово Репутация: 1 Всего: 5 |
Спасибо,
Aloha , я чесно говоря эту фразу читала как нельзя уменьшать размерность массива вообще, а не последней.. Интересно можно транспонировать массив?) Наверное опять через for... Будем изыскивать.. ИгнатьевАлексей , я об этом тоже подумывала, но мне это показалось дольше, т.к. для того чтобы просчитать размер массива, а потом заполнить его потребуется два раза прогнать код указанный ранее. Может я не права? Спасибо за совет, попробую и так и эдак |
|||
|
||||
![]()
|
| Правила форума "Программирование, связанное с MS Office" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |