如何将二进制文件读出后转换成VARIANT类型?

蒋锋 2003-10-20 11:02:33
我把一个二进制文件读入内存后,怎么才能转换到VARIANT类型?因为二进制文件中有0x00值,能不能用VarDataFromOleStr之类的函数吧
...全文
66 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿发伯 2003-10-21
  • 打赏
  • 举报
回复
直接使用variant类型装入文件就行了,以下是我的3层数据库程序中间层的一个读二进制流的借口方法,供参考,OleVariant和Variant用法是相同的。

procedure TZfInfoRDM.ReceiveAccessory(const AccesName: WideString;
out Data: OleVariant; out Size: Integer);
var
SearchRec: TSearchRec;
S: TStream;
p: Pointer;
FileName: String;
begin
Size := 0;
FileName := DModule.SystemPath + AccessPath + AccesName;
// 在系统二进制文件目录查找文件,成功将结果记录到SearchRec中
if FindFirst(FileName, faAnyFile, SearchRec) = 0 then
begin
Size := SearchRec.Size; // 取文件长度,打开文件供读
S := TFileStream.Create(FileName, fmOpenRead);
try
Data := VarArrayCreate([0, Size], VarByte); // 建立单字节的动态数组
p := VarArrayLock(Data);
try
S.Read(p^, Size); // 读文件
finally
VarArrayUnLock(Data);
end;
finally
S.Free;
end;
end;
end;
huojiehai 2003-10-20
  • 打赏
  • 举报
回复
http://haitian.myrice.com/ByteDataTrans.txt
huojiehai 2003-10-20
  • 打赏
  • 举报
回复
这个合你要求!

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧