Vlax-variant-type

提供:GizmoLabs - だいたい CAD LISP なサイト
構文
(vlax-variant-type var)


機能
バリアントのデータ タイプを調べる。
引数
  • var : 値がバリアント型の変数。
戻り値
var にセーフ配列が含まれている場合、次の整数の 1 つを返す。
  • 0 データ無し (vlax-vbEmpty)
  • 1 有効なデータを含まない (vlax-vbNull)
  • 2 整数 (vlax-vbInteger)
  • 3 長整数 (vlax-vbLong)
  • 4 単精度浮動小数点数 (vlax-vbSingle)
  • 5 倍精度浮動小数点数Double-precision floating-point number (vlax-vbDouble)
  • 8 文字列 (vlax-vbString)
  • 9 オブジェクト (vlax-vbObject)
  • 11 真偽値 (vlax-vbBoolean)
  • 8192 + n いずれかのデータタイプのセーフ配列(vlax-vbArray)。たとえば、倍精度実数(vlax-vbDouble)の配列は、8197(8192+5)を返す。
var にバリアント型が含まれていない場合、エラーを返す。


サンプル
バリアント型を nil に設定し、バリアント型のデータ タイプを表示する。
(setq varnil (vlax-make-variant nil))
#<variant 0 >
(vlax-variant-type varnil)
0
バリアントに整数値を設定し、バリアントを明示的に整数型として定義する。
(setq varint (vlax-make-variant 5 vlax-vbInteger))
#<variant 2 5>
(vlax-variant-type varint)
2
バリアントに整数値を設定し、バリアントのデータ タイプを表示する。
(setq varint (vlax-make-variant 5))
#<variant 3 5>
(vlax-variant-type varint)
3
データ タイプを明示的に vlax-make-variant 関数で指定しなければ、整数を割り当てると長整数型になることに注意。
バリアントに文字列を設定し、バリアントのデータ タイプを表示する。
(setq varstr (vlax-make-variant "ghost"))
#<variant 8 ghost>
(vlax-variant-type varstr)
8
倍精度実数のセーフ配列を作成し、セーフ配列をバリアントに割り当て、バリアントのデータ タイプを表示する。
(setq 4dubs (vlax-make-safearray vlax-vbDouble '(0 . 3)))
#<safearray...>
(setq var4dubs (vlax-make-variant 4dubs))
#<variant 8197 ...>
(vlax-variant-type var4dubs)
8197
8192 よりも大きいバリアントのデータ タイプの値は、バリアントにいずれかのタイプのセーフ配列が含まれていることを表している。セーフ配列のデータ タイプを調べるには、戻り値から 8192 を差し引く。 この例では、8197-8192=5(vlax-vbDouble)。
変数に実数を割り当て、 次に、vlax-variant-type 関数を実行してその変数のデータ タイプをチェックする。
(setq notvar 6.0)
6.0
(vlax-variant-type notvar)
; エラー:  引数のタイプが間違っています: variantp 6.0

最後の例では、vlax-variant-type 関数に渡された変数にバリアント型が含まれていないので、エラーになる。



関連事項