динамические многомерные массивы LotusScript - PullRequest
0 голосов
/ 24 марта 2009

Я просто делал какой-то дурацкий код и подумал, вместо того, чтобы использовать три динамических массива как таковых:

dim x () как строка, y () как строка, z () как строка

Будет лучше иметь трехмерный динамический массив. Но; помощь и мои неуклюжие эксперименты не выявили метода их определения.

Это не работает:

тусклый х () () или тусклый (, 2) или тусклый (,)

Есть идеи у кого-нибудь?

Ответы [ 2 ]

5 голосов
/ 24 марта 2009

Динамический массив объявляется одинаково независимо от количества измерений (массивы в LotusScript могут иметь до 8 измерений). В соответствии с вашим примером, я думаю, что вам нужен двумерный массив, первое измерение которого ограничено тремя записями.

Если вы впервые объявите массив как:

Dim x() As String

Затем вы можете указать границы в соответствии со следующим примером:

Redim x( 0 To 2, 0 To 9 ) ' A two dimensional array

И если вам нужно увеличить массив позже (и сохранить все значения), вы можете сделать это следующим образом:

Redim Preserve x( 0 To 2, 0 To 99 )

Пожалуйста, имейте в виду, что только границы последнего измерения могут быть изменены после того, как число измерений массива было установлено.

1 голос
/ 30 июня 2009

Вы можете использовать списки вместо массивов.

Dim x list as String

Это полностью динамично и принимает строку в качестве индекса. Список не может содержать списки, но списки могут содержать объекты, поэтому вы можете захотеть сделать

Public Class ListContainer
   Public level2 List as String
End Class

Таким образом, вам никогда не понадобится REDIM preserve. По всему списку вы без проблем просматриваете список

...