因客户需求,对客户的指纹机与公司产品进行集成,需要对指纹机做接口的二次开发,郁闷的是产商只提供了VB和C的DEMO示例,没有Delphi的,公司没有VB,C的环境,不能打开这二种语言的示例,因为本公司搭环境特麻烦,加上之前做过类似的开发,所以也懒得去搭环境了,按照以前的开发经验写了个DEMO进行测试,一路进行得很顺利,但到了下载用户指纹和上传用户指纹数据时卡住了,因为下载用户指纹时,用于获取指纹数据传入到接口函数中的参数类型是OleVariant类型的,返回后变成了 Variant array of Integer类型了。这里碰到二个问题了:
1、如何从OleVariant类型的数组中赋值取值
2、指纹数据放在了一个数组中,我如何把这些数据保存到数据库和很方便的从数据库取出来
一直以为OleVariant很复杂,在网上搜了很多资料,终于发现OleVariant类型数组赋值和取值其实很简单,如下:
取值:
1
|
procedure p_GetEnrollData(); var dwEnrollData:OleVariant; High,Low,i:Integer; sEnrollList:TStringList; begin sEnrollList:=TStringList.Create; try High:=VarArrayHighBound(dwEnrollData,1); Low:=varArrayLowBound(dwEnrollData,1); for i:=Low to High do begin sEnrollList.Add(inttostr(dwEnrollData[i])) end; //把sEnrollList.Text 保存到数据库中 finally sEnrollList.Free; end; end; |
赋值:
1
|
procedure p_SetEnrollData(); var dwEnrollData:OleVariant; i:Integer; begin dwEnrollData:=VarArrayCreate([0,1000],varInteger); for i:=0 to 1000 do dwEnrollData[i]:=i; end; |
是不是很简单了呢?
http://www.vckbase.com/module/articleContent.php?id=4359