码迷,mamicode.com
首页 > Windows程序 > 详细

Delphi Variant 通用类型[3] 流 Stream的相互转换

时间:2020-12-28 11:43:53      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:style   UNC   相互转换   一个   移动   检查   var   大小   roc   

Delphi Variant 通用类型[3]  流 Stream的相互转换

//1、 Variant转成流
procedure VariantToStream(const Data: OleVariant; Stream: TStream);
var
  p: Pointer;
begin
  p := VarArrayLock(Data); // 加锁,并返回一个指针指向的数据。 避免运行时时刻检查
  try
    Stream.Write(p^, VarArrayHighBound(Data,1) + 1); // 返回最大的列号
  finally
    VarArrayUnlock(Data); // 解锁,使数组能重新移动或改变大小。
  end;
end;

// 2、流转成Variant
function StreamToVariant(Stream: TStream): OleVariant;
var
  p: Pointer;
begin
  Result := VarArrayCreate([0, Stream.Size - 1], varByte);// 创建一个一维的数组。类型为varByte
  p := VarArrayLock(Result);
  try
    Stream.Position := 0; // 设置流的位置
    Stream.Read(p^, Stream.Size);
  finally
    VarArrayUnlock(Result);
  end;
end;

  



创建时间:2020.12.22  更新时间:

 

Delphi Variant 通用类型[3] 流 Stream的相互转换

标签:style   UNC   相互转换   一个   移动   检查   var   大小   roc   

原文地址:https://www.cnblogs.com/guorongtao/p/14172700.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!