vlax-safearray-fill (AutoLISP/ActiveX)

セーフ配列の要素にデータを格納します。

サポートされているプラットフォーム: Windows のみ

構文と要素

(vlax-safearray-fill var 'element-values)
var

タイプ: セーフ配列

セーフ配列を含んだ変数。

'element-values

タイプ: リスト

配列に格納する値。配列の要素と同数の変数を指定することができます。要素数よりも少ない値しか指定しなかった場合は、残りの要素は現在の値を保持します。

多次元配列に対しての element-values 引数は、各リストが配列の次元数に一致した、リストのリストでなければなりません。

戻り値

タイプ: リストまたは nil

var 引数に指定した値。

倍精度実数の 1 次元配列を作成します。

(setq sa (vlax-make-safearray vlax-vbdouble '(0 . 2)))
#<safearray...>

vlax-safearray-fill 関数を使用して、配列に値を代入します。

(vlax-safearray-fill sa '(1 2 3))
#<safearray...>

配列の内容をリストします。

(vlax-safearray->list sa)
(1.0 2.0 3.0)

vlax-safearray-fill 関数を使用して、配列の最初の要素を設定します。

(vlax-safearray-fill sa '(-66))
#<safearray...>

配列の内容をリストします。

(vlax-safearray->list sa)
(-66.0 2.0 3.0)

配列の最初の要素だけが変更されたことに注意してください。残りの要素には影響がなく、以前それらに設定された値が保持されています。2 番目または 3 番目の要素を変更し、最初の要素はそのままにしておきたいときは、vlax-safearray-put-element 関数を使用します。

要素が 3 つしかない配列の 4 番目の要素を設定するように、vlax-safearray-fill 関数に命令します。

(vlax-safearray-fill sa '(1 2 3 4))
Error: Assertion failed: safearray-fill failed. Too many elements.

配列の要素よりも多くの要素を指定すると、vlax-safearray-fill 関数はエラーを返します。

複数次元の配列に値を割り当てるには、vlax‑safearray-fill 関数に、次元に対応する各リストからなるリストを指定します。次のコマンドは、各次元に 3 要素を含む文字列の 2 次元配列を作成します。

(setq mat2 (vlax-make-safearray vlax-vbString '(0 . 1) '(1 . 3)))
#<safearray...>

vlax-safearray-fill 関数を使用して、配列に値を代入します。

(vlax-safearray-fill mat2 '(("a" "b" "c") ("d" "e" "f")))
#<safearray...>

mat2 の内容を確認するには、vlax‑safearray‑>list 関数を使用します。

(vlax-safearray->list mat2)
(("a" "b" "c") ("d" "e" "f"))