文件与Olevariant

原创 2004年10月09日 10:22:00

//---------------------------读数据到olevariant
//pfileName:带路径的文件名
function Getobj(pfileName:string): OleVariant;
var fs:TFileStream;
begin
  fs := TFileStream.Create(pfileName,fmOpenRead);
  try
    result := VarArrayCreate([0,fs.size-1],varbyte);
    fs.position := 0;
    fs.readbuffer(varArrayLock(result)^, fs.size);
  finally
    fs.free;
    varArrayunlock(result);
  end;
end;

//---------------------------从 olevariant 写到新文件
function writeFileFromOle(pfileName:string;pOleVariant:OleVariant):integer;
var fs:TFileStream;
begin
  result:=0;
  fs := TFileStream.Create(pfileName,fmCreate);
  try
    try
      fs.WriteBuffer(varArrayLock(pOleVariant)^, VarArrayHighBound(pOleVariant,1)+1);
    except
      result:=-1;
    end;
  finally
    fs.free;
    varArrayunlock(pOleVariant);
  end;
end;


------------------------------ 函数说明:
//取得数组A的第Dim维的长度
function VarArrayHighBound(const A: Variant; Dim: Integer): Integer;
//创建数组
function VarArrayCreate(const Bounds: array of Integer; VarType: Integer): Variant;

Delphi OleVariant 类型的用法

因客户需求,对客户的指纹机与公司产品进行集成,需要对指纹机做接口的二次开发,郁闷的是产商只提供了VB和C的DEMO示例,没有Delphi的,公司没有VB,C的环境,不能打开这二种语言的示例,因为本公司...
  • atlim
  • atlim
  • 2011年05月04日 18:42
  • 6243

OleVariant 与 Variant

olevariant存在于windows和linux平台,这二种类型主要的不同是variant类型仅是当前的应用程序可以进行操作,而olevariant类型则是ole自动化服务器所以定义的统一的数据类...
  • Hmillet
  • Hmillet
  • 2017年09月20日 13:55
  • 214

Delphi中Variant/OleVariant转换为接口

在使用Com组件的程序中经常需要将Variant/OleVariant类型转换为特定的接口类型。例如在微软的安全组件(CAPICom)的ICertificates 接口中, 需要将Item返回的Ole...
  • kongguoqing791025
  • kongguoqing791025
  • 2015年06月12日 16:50
  • 1949

delphi中处理OleVariant和TStream

因为客户不知道从数据库中流字段到打开文档,编辑,再保存到数据库中流字段这个流程,这个流程涉及到了接口OpenDocumentWithStream和SaveToStream,而对应的VARIANT类型在...
  • xt_chaoji
  • xt_chaoji
  • 2011年10月20日 17:13
  • 4001

Delphi OleVariant 内存泄露

V := '123456';   V := Unassigned; 或 VarClear(V);   都无法完全释放内存(这里的内存指的是 V := '123456'; 这行代码造成的类型...
  • EdgenHuang
  • EdgenHuang
  • 2013年11月27日 09:26
  • 873

TMemoryStream、String与OleVariant互转

//////////////////////////////////////////////////////////////////////////////// //功能: STRING 的内容流化...
  • QQ56430204
  • QQ56430204
  • 2017年02月09日 09:37
  • 327

delphi中操作oleVariant、variant和stream

最近在学习delphi,好多东西都不懂。这几天需要用到用二进制的方式保存和读取oracle中的数据。找了好多帖子才找到我需要的,不过都不全,害我本来就不怎么懂得人弄了好几天。整理一下,供自己和大家以后...
  • leandzgc
  • leandzgc
  • 2012年05月15日 15:00
  • 7168

OleVariantToStream

procedure VariantToStream(const Data: OleVariant; Stream: TMemoryStream);var  p: Pointer;begin  p :=...
  • Oracle10g
  • Oracle10g
  • 2006年04月15日 00:17
  • 911

C#调用delphi编写的dll时如何传入传出OLEVariant

假设在delphi写一个dll,export这样一个函数: function Test_OLEVariant(AEndPointURL:PWideChar;AParams:OLEVariant;ou...
  • acrodelphi
  • acrodelphi
  • 2010年11月19日 11:54
  • 2656

调用COM控件的时候(例如访问数据库)出现类型不匹配。

COM规范中,所有的变量类型对于C语言来说只有一种:VARIANT。如果我们想从数据库里面取出一个long类型的值,或者说COM控件需要返回给我一个值,都要通过VARIANT完成。例如 CComQIP...
  • zharP
  • zharP
  • 2006年04月21日 20:19
  • 1860
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:文件与Olevariant
举报原因:
原因补充:

(最多只允许输入30个字)