Tips

配列のカレント要素を倍長整数で管理する

日付2011/05/25
ID76325 (英語原文参照)
バージョン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}