Delphi Variant 通用类型[3] 流 Stream的相互转换
2020-12-28 15:28
标签:style UNC 相互转换 一个 移动 检查 var 大小 roc Delphi Variant 通用类型[3] 流 Stream的相互转换 创建时间:2020.12.22 更新时间: Delphi Variant 通用类型[3] 流 Stream的相互转换 标签:style UNC 相互转换 一个 移动 检查 var 大小 roc 原文地址:https://www.cnblogs.com/guorongtao/p/14172700.html//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;
上一篇:windows平台编译openssl(64位MT版本)
下一篇:STemWin
文章标题:Delphi Variant 通用类型[3] 流 Stream的相互转换
文章链接:http://soscw.com/index.php/essay/38858.html