Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: ReDim Добавлено: 25.09.03 13:09  

Автор вопроса:  lnu

Народ, тут такой вопрос. Вот кусок кода:

 

Dim MyArray() As Long
i = 1
j = 1
ReDim Preserve MyArray(i, j)
j = j + 1
ReDim Preserve MyArray(i, j)
j = j + 1
ReDim Preserve MyArray(i, j)
i = i + 1
ReDim Preserve MyArray(i, j) ' и тут у меня проблемка: Subscript out of range.


Как мне всё же увеличить і ?

Без Preserve работает, но мне бы оставить содержимое массива.

Можно, конечно, создать временный массив, но два раза гонять данные... (MyArray -> TempArray, TempArray -> MyArray).

Есть ли еще какой то выход?

Ответить

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

Номер ответа: 1
Автор ответа:
 boevik



Хранитель чата

ICQ: 137392264 

Вопросов: 8
Ответов: 557
 Web-сайт: www.hypertech.ru
 Профиль | | #1
Добавлено: 25.09.03 13:25

Вот что пишет Microsoft в MSDN:

When you use Preserve, you can resize only the last dimension of the array, and for every other dimension you must specify the same size it already has in the existing array.

Ответить

Номер ответа: 2
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #2
Добавлено: 25.09.03 13:30
В принципе невозможно. Если не полениться и почитать MSDN, то можно
узнать, что изменять можно только последнюю размерность массива.

Единственный выход: создать новый массив с нужными размерами и в цикле
перегнать туда данные. Я так делал.

Ответить

Номер ответа: 3
Автор ответа:
 lnu



Вопросов: 8
Ответов: 14
 Профиль | | #3 Добавлено: 25.09.03 13:36

 Ну тогда спасибо.

Придется использовать TempArray :( .

Ответить

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



Вопросов: 1
Ответов: 184
 Профиль | | #4 Добавлено: 26.09.03 00:40

Используй массив типа Variant. Тогда в каждый элемент массива можно будет запихать еще массив. Обращение немного корявое будет, что-то вроде Arr(i)(j). Где-то здесь на форуме я подобный пример уже писал.

Ответить

Страница: 1 |

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



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