(vlax-make-variant) ;;建立一個未初始化的變體數組
;;01.整型值變體
(setq myvar (vlax-make-variant 10)) ;;建立整型值變體,返回 #<variant 3 10>
(vlax-variant-type myvar) ;;獲取變體類型,返回 3
(vlax-variant-value myvar) ;;獲取變體中的值 ,返回10安全
;;02.雙精度值型變體
(setq myvar2 (vlax-make-variant 10.2)) ;;返回 #<variant 5 10.2>
(vlax-variant-type myvar2) ;;獲取變體類型,返回 5
(vlax-variant-value myvar2) ;;獲取變體中的值 ,返回10.2函數
;;03.字符串值型變體
(setq myvar3 (vlax-make-variant "10string")) ;;返回 #<variant 8 10string>
(vlax-variant-type myvar3) ;;獲取變體類型,返回 8
(vlax-variant-value myvar3) ;;獲取變體中的值 ,返回"10string"spa
;;04.存儲雙精度值二維安全數組類型的變體
(setq dbArray (vlax-make-safearray vlax-vbDouble '(0 . 3) '(1 . 2))) ;;建立安全數組,返回 #<safearray...>
(vlax-safearray-fill dbArray '((1 2) (3 4) (5 6) (7 8))) ;;使用fill函數給變體一次性賦值,返回 #<safearray...>
(setq mydbSaVar (vlax-make-variant dbArray )) ;;用安全數組建立變體,返回 #<variant 8197 ...>
(vlax-variant-type mydbSaVar) ;;獲取變體類型,返回 8197
(setq mydbArray (vlax-variant-value mydbSaVar)) ;;獲取變體值,返回 #<safearray...>
(vlax-safearray->list mydbArray) ;;將安全數組以表的形式返回,返回 ((1.0 2.0) (3.0 4.0) (5.0 6.0) (7.0 8.0))
(vlax-safearray-get-dim mydbArray) ;;安全數組的維數,返回 2
(vlax-safearray-get-l-bound mydbArray 1) ;;安全數組指定維度的下界,返回0
(vlax-safearray-get-u-bound mydbArray 2) ;安全數組指定維度的上界,返回2
;;要點:
;;建立數組的時候要指定存儲數據的類型
;;維度的維數,維度下界和上界,數組元素和維度的對應
;;用fill時,數組必定要填滿element
;;05.存儲字符串值二維安全數組類型的變體
(setq strArray (vlax-make-safearray vlax-vbString '(1 . 3) '(1 . 2))) ;;建立安全數組,返回 #<safearray...>
(vlax-safearray-put-element strArray 1 1 "Hello") ;;給數組元素賦值,使用put函數,返回 "Hello"
(vlax-safearray-put-element strArray 2 2 "HaHaHa") ;;給數組元素賦值,使用put函數,返回 "HaHaHa"
(setq myStrSaVar (vlax-make-variant strArray )) ;;用數組建立變體,返回 #<variant 8200 ...>
(vlax-variant-type myStrSaVar) ;;獲取變體類型,返回 8200
(setq mystrArray (vlax-variant-value myStrSaVar)) ;;獲取變體值,返回 #<safearray...>
(vlax-safearray-get-element mystrArray 1 1) ;;獲取下標爲1 1的數組元素,返回 "Hello"
(vlax-safearray->list mystrArray) ;;將安全數組以表的形式返回,返回 (("Hello" "") ("" "HaHaHa") ("" ""))字符串