标签: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