Delphi OleVariant 类型的用法

    因客户需求,对客户的指纹机与公司产品进行集成,需要对指纹机做接口的二次开发,郁闷的是产商只提供了VB和C的DEMO示例,没有Delphi的,公司没有VB,C的环境,不能打开这二种语言的示例,因为本公司搭环境特麻烦,加上之前做过类似的开发,所以也懒得去搭环境了,按照以前的开发经验写了个DEMO进行测试,一路进行得很顺利,但到了下载用户指纹和上传用户指纹数据时卡住了,因为下载用户指纹时,用于获取指纹数据传入到接口函数中的参数类型是OleVariant类型的,返回后变成了 Variant array of Integer类型了。这里碰到二个问题了:

  1、如何从OleVariant类型的数组中赋值取值

  2、指纹数据放在了一个数组中,我如何把这些数据保存到数据库和很方便的从数据库取出来

 

一直以为OleVariant很复杂,在网上搜了很多资料,终于发现OleVariant类型数组赋值和取值其实很简单,如下:

 

取值:

 

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;

 

赋值:

 

procedure p_SetEnrollData();
var
   dwEnrollData:OleVariant;
   i:Integer;
begin
   dwEnrollData:=VarArrayCreate([0,1000],varInteger);
 
  for i:=0 to 1000 do
    dwEnrollData[i]:=i;
 
end;


是不是很简单了呢?

 

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Delphi的CoXMLHTTP是一个用于处理XML数据的组件。它是基于COM技术XMLHTTP对象的封装,可以用于发送请求并接收响应。CoXMLHTTP提供了一种简单方便的方式来与Web服务器进行通,并处理返回的XML数据。 使用CoXMLHTTP,你可以发送各种类型的HTTP请求,如GET、POST等,并可以设置请求头、请求参数等。它还支持异步请求和事件回调,可以在请求完成后触发相应的事件进行处理。 以下是一些使用CoXMLHTTP的示例代码: 1. 发送GET请求并获取响应: ``` var XMLHTTP: OleVariant; ResponseText: string; begin XMLHTTP := CreateOleObject('MSXML2.XMLHTTP'); XMLHTTP.open('GET', 'http://example.com/api/data', False); XMLHTTP.send; ResponseText := XMLHTTP.responseText; // 处理响应数据 end; ``` 2. 发送POST请求并获取响应: ``` var XMLHTTP: OleVariant; ResponseText: string; begin XMLHTTP := CreateOleObject('MSXML2.XMLHTTP'); XMLHTTP.open('POST', 'http://example.com/api/data', False); XMLHTTP.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); XMLHTTP.send('param1=value1&param2=value2'); ResponseText := XMLHTTP.responseText; // 处理响应数据 end; ``` 3. 异步请求和事件回调: ``` procedure TForm1.Button1Click(Sender: TObject); var XMLHTTP: OleVariant; begin XMLHTTP := CreateOleObject('MSXML2.XMLHTTP'); XMLHTTP.onreadystatechange := TEventHandler.Create(XMLHTTP); XMLHTTP.open('GET', 'http://example.com/api/data', True); XMLHTTP.send; end; type TEventHandler = class(TInterfacedObject) private FXMLHTTP: OleVariant; public constructor Create(const XMLHTTP: OleVariant); procedure onreadystatechange; end; constructor TEventHandler.Create(const XMLHTTP: OleVariant); begin FXMLHTTP := XMLHTTP; end; procedure TEventHandler.onreadystatechange; begin if FXMLHTTP.readyState = 4 then begin // 请求完成,处理响应数据 ShowMessage(FXMLHTTP.responseText); end; end; ``` 以上是关于Delphi的CoXMLHTTP的简单介绍和示例代码。如果你有更多问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值