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的var***型別**。
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型別的值。
Variant的相關函式
variant的相關函式 sysutils.abort 中斷事務 problem 如 a vararraycreate 0,4 varvariant a 0 1 a 1 abc a 2 3 a 3 vararrayof 1,2,3,4,5 如果要取出a 3 中的各個具體的值a 3 0 1,用上面的函...
VARIANT型別的用法
variant的結構可以參考標頭檔案vc98 include oaidl.h中關於結構體tagvariant的定義。對於variant變數的賦值 首先給vt成員賦值,指明資料型別,再對聯合結構中相同資料型別的變數賦值,舉個例子 variant va int a 2001 va.vt vt i4 指明...
PHP 類相關函式的使用詳解
boolclass alias string original string alias bool autoload true 為乙個類建立別名 boolclass exists string class name bool autoload 檢查類是否已定義 stringget called cl...