明经通道 Visual LISP 函数  
vlax-safearray-fill
 

在 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-safearrayvlax-safearray-get-dimvlax-safearray-get-elementvlax-safearray-get-l-boundvlax-safearray-get-u-boundvlax-safearray-put-elementvlax-safearray-typevlax-safearray->list 和  vlax-variant-value 函数。

明经通道 版权所有 未经许可 不得传播

 评论