СообЧа > База Знаний > Программирование > Visual Basic

Вопрос

Несколько вопросов при работе с массивами возникло… Вот вначале есть такое объявление: Dim DArray(1 to 1, 1 to 2) As String (даже если написать Dim Array() As String — тоже не работает) затем где-то надо изменить верхнюю границу первого измерения, как это сделать? Когда я пишу: ReDim Preserve Array(1 to 4, 1 to 2) As String Это не работает. Как это делать именно для многомерных массивов. Насколько я знаю второе, третье и т.д. измерения изменять нельзя, но первое-то же можно, по-моему. И еще, как при помощи UBound узнать верхнюю границу первого измерения многомерного массива.

Ответ

Любой динамический массив должен объявляться только с ПУСТЫМИ
скобками (с использованием ключевых слов Dim Public Private)
— С использованием ключевого слова Preserve может изменятся ТОЛЬКО
ПОСЛЕДНЯЯ размеренность массива
— С использованием ключевого слова Preserve может изменяться только
ВЕРХНЯЯ граница ПОСЛЕДНЕЙ размеренности массива

Т.е. моя проблема решалась следующим образом:

Dim Array() As String

Sub Sub()
ReDim Array(1 to 2, 1 to 4)

ReDim Preserve Array(1 to 2, 1 to 8)
End Sub

Виталий



Copyright © 2000-2004 Сообщество Чайников
Контактная информация