zoukankan      html  css  js  c++  java
  • Variant的相关函数

    Variant的相关函数


    1.VarArrayCreate()和VarArrayOf()这两个常用就不说了
    2.VarArrayRedim()函数能修改variant数组的最高限。
    3.VarArrayDimCount()函数返回Variant数组的维数,
    4.VarArrayLowBound()和VarArrayHighBound()函数分别返回Variant数组的下边界和上边界。
    5.VarArrayLock()和VarArrayUnlock()一般用于初始化一个大数组。
    如:
    它创建一个有10000字节的Variant数组。假定有另一个相同长度的非Variant类型的数组,并且想
    把非variant类型的数组复制到variant类型的数组中去。通常这都是通过用循环语句对variant数组
    的单元进行赋值实现的。示例如下:
    begin
    v:=VarArrayCreate([1,10000],varBate);
    fori:=1to10000do
    v[i]:=a[i];
    end;
    上面这段代码的主要问题在于,大量的时间花费在对Variant数组的初始化上,因为在对每一个元
    素进行赋值时,都要通过运行时逻辑来检查并判断数据类型的兼容性、每个元素的位置等等。为了避
    免运行时检查,要用VarArrayLock()函数和VarArrayUnlock()过程。VarArrayLock()函数在内存中锁
    定数组,使数组不再移动和改变大小,并能返回一个指向数组数据的指针。而VarArrayUnlock()过程
    用来对VarArrayLock()函数锁定的数组进行解锁,使数组能重新移动或改变大小。在锁定数组后,能
    用更有效的方法对数组进行初始化,例如用指向数组数据的指针调用Move()过程,下面的代码也对
    Variant数组进行初始化,但它更有效:
    begin
    v:=VarArrayCreate([1,10000],varBate);
    p:=VarArrayLock(v)
    try
    move(A,P^,10000);
    finally
    VarArrayUnlock(v);
    end;
    end;

    6.VarArrayRef()获得variant指向的数据
    7.VarIsArray()函数是一个简单的布尔检查函数,如果传递给它的参数是一个Variant数组则返回True,否则返回False.
    8.VarClear()过程清除Variant变量并将VType域的值设为varEmpty.
    9.VarCopy()将Source复制到Dest。
    10.VarCast()将一个Variant转换成指定的类型并存储在另一个Variant变量中。
    11.VarType()返回指定Variant的varXXX类型代码。
    12.VarAsType()跟VarCast()的功能一样。
    13.VarIsEmpty()如果一个Variant变量的类型代码是varEmpty则返回True。
    14.VarIsNull()判断Variant变量是否包含null值。
    15.VarToStr()将一个Variant变量转换成字符串表达式(如果Variant为varEmpty或varNUll则为空字符
    串)。
    16.VarFromDateTime()返回一个Variant变量,它存放着指定的TDateTime类型的值。
    17.VarToDateTime()返回在Variant中的TDateTime类型的值。
  • 相关阅读:
    LeetCode 242. Valid Anagram (验证变位词)
    LeetCode 205. Isomorphic Strings (同构字符串)
    LeetCode 204. Count Primes (质数的个数)
    LeetCode 202. Happy Number (快乐数字)
    LeetCode 170. Two Sum III
    LeetCode 136. Single Number (落单的数)
    LeetCode 697. Degree of an Array (数组的度)
    LeetCode 695. Max Area of Island (岛的最大区域)
    Spark中的键值对操作
    各种排序算法总结
  • 原文地址:https://www.cnblogs.com/bridge/p/1452011.html
Copyright © 2011-2022 走看看