配列のカレント要素を倍長整数で管理する
日付 | 2011/05/25 |
---|---|
ID | 76325 (英語原文参照) |
バージョン | v11 SQL |
プラットフォーム | Mac/Win |
4Dの配列は, 要素インデックスを省略した場合, カレント要素番号を返すので, これを利用して配列名{配列名}のような記述でカレント要素の値を取ることができます。ただし, この値のデータタイプは整数, つまり-32,768から32,767までの範囲しか表現することができません。要素が負の値ということはないので, 実際には1から32,767までの要素だけが取れることになります。このため, 要素数が32,767を超えるおおきな配列の場合, 配列名{配列名}という記述に頼ることはできません。
ARRAY TEXT($largeArray_at;33000)
For ($i;1;33000)
$largeArray_at{$i}:=String($i)
End for
$largeArray_at:=32768
$element:=$largeArray_at{$largeArray_at} `error
そのようなわけで, サイズがおおきな配列を扱うのであれば, 倍長整数の変数でカレント要素を倍長整数で管理する工夫が必要です。
ARRAY TEXT($largeArray_at;33000)
C_LONGINT($currentPosition_l)
For ($i;1;33000)
$largeArray_at{$i}:=String($i)
End for
$currentPosition_l:=32768
$element:=$largeArray_at{$currentPosition_l}