配列とインデックス

デフォルトの設定では、LotusScript® での配列インデックスは 0 から始まります。例えば、配列の要素は Elem(0)、Elem(1)、Elem(2) などのように指定されます。LotusScript の「Option Base n」というオプションを使用すると、未指定の配列のデフォルトの下限値として 0 以外の数値を指定できます。Lotus® Connector LotusScript Extensions (LC LSX) では、この構文はサポートされません。Lotus Connector などの LC LSX を使用するスクリプトでは、一貫性を保つために、このオプションは使用しないことを推奨します。

Lotus Connector のクラスメソッドの多くは、複数値のデータを操作します。このようなクラスメソッドには LCStream の List メソッド、LCField および LCFieldlist の Get メソッドと Set メソッド、また LCConnection の Fetch、Insert、Update および Remove の各メソッドがあります。これらのオペレーションは 1 からカウントされます。例えば、フィールドリストのフィールドは MyFieldList.GetField (1)、MyFieldList.GetField (2)、MyFieldList.GetField (3) などのように指定します。デフォルトでゼロから始まるよう宣言された配列や、常にゼロから始まる LSX で生成された配列と異なり、これらのクラスメソッドではインデックスを 1 から開始する必要があります。同じデータ項目に、0 から始まる配列インデックスと 1 から始まるメソッドのインデックス引数でアクセスする場合もあります。どちらを使用するかは、メソッドでアクセスするか、配列値を返すプロパティでアクセスするかによって決まります。

LotusScript の配列は、LCField などの複数値オブジェクトに割り当てることができます。このとき、配列の要素数が LCField オブジェクトに格納される要素の数を超えるとオーバーフローエラーが発生するため、超えないように注意してください。例えば、次のように 5 個の長整数を LCField に割り当てます。

Dim numbers(4) as Long  ' numbers(0, numbers(1), ... numbers(4)
Dim field as new LCField (LCTYPE_INT, 5)

...
field.Value = numbers