在 SafeArray 的元素中存储数据
(vlax-safearray-fill var 'element-values)
参数
var
变量,其数据类型为 SafeArray。
’element-values
要存储在数组中的值表。指定的值的数目可以和数组元素的数目一样多。如果指定的值的数目少于数组中元素的个数,剩余的元素将保持当前值。
对于多维数组,element-values 必须为表的列表,其中每个表对应于数组中的一维。
返回值
var
示例
创建一个一维双精度数组:
_$ (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)
请注意只有数组中的第一个元素被修改了,而其他元素的值没有被改变。如果需要改变第二个或第三个元素,而保留第一个元素的值,可以使用 vlax-put-element 函数。
用 vlax-safearray-fill 设置数组中的四个元素,而该数组中仅包含三个元素:
_$ (vlax-safearray-fill sa '(1 2 3 4))
错误:声明失败:safearray-fill 失败。元素太多。
如果指定的元素个数大于数组中包含的元素个数,vlax-safearray-fill 函数返回错误信息。
要指定多维数组的值,可以为 vlax-safearray-fill 指定一个由表组成的表,该表中的每个子表对应于数组的一维。下面的命令创建一个二维字符串数组,其中每维都包含三个元素:
_$ (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...>
调用 vlax-safearray->list 函数确认 mat2 的内容:
_$ (vlax-safearray->list mat2)
(("a" "b" "c") ("d" "e" "f"))
参阅
vlax-make-safearray、 vlax-safearray-get-dim、 vlax-safearray-get-element、vlax-safearray-get-l-bound、 vlax-safearray-get-u-bound、 vlax-safearray-put-element、 vlax-safearray-type、 vlax-safearray->list 和 vlax-variant-value 函数。
明经通道 版权所有 未经许可 不得传播 | 评论 |