作者:
陆岛工作室
procedure
VariantToStream (
const
v :olevariant; Stream : TMemoryStream);
var
p : pointer;
begin
Stream.Position :
=
0
;
Stream.Size :
=
VarArrayHighBound (v,
1
)
-
VarArrayLowBound(v,
1
)
+
1
;
p :
=
VarArrayLock (v);
Stream.Write (p^, Stream.Size);
VarArrayUnlock (v);
Stream.Position :
=
0
;
end
;
procedure
StreamToVariant (Stream : TMemoryStream;
var
v : OleVariant);
var
p : pointer;
begin
v :
=
VarArrayCreate ([
0
, Stream.Size
-
1
], varByte);
p :
=
VarArrayLock (v);
Stream.Position :
=
0
;
Stream.Read (p^, Stream.Size);
VarArrayUnlock (v);
end
;
Variant 转换成 Stream 的函数
procedure
VariantToStream (
const
v :olevariant; Stream : TMemoryStream);
var
p : pointer;
begin
Stream.Position :
=
0
;
Stream.Size :
=
VarArrayHighBound (v,
1
)
-
VarArrayLowBound(v,
1
)
+
1
;
p :
=
VarArrayLock (v);
Stream.Write (p^, Stream.Size);
VarArrayUnlock (v);
Stream.Position :
=
0
;
end
;
Stream 转换成 Variant 的函数
procedure
StreamToVariant (Stream : TMemoryStream;
var
v : OleVariant);
var
p : pointer;
begin
v :
=
VarArrayCreate ([
0
, Stream.Size
-
1
], varByte);
p :
=
VarArrayLock (v);
Stream.Position :
=
0
;
Stream.Read (p^, Stream.Size);
VarArrayUnlock (v);
end
;
本文介绍了两种实用的函数:将Variant类型数据转换为Stream类型数据的VariantToStream过程,以及相反方向的StreamToVariant过程。这两种转换方法适用于Delphi等使用Variant数据类型的环境中,能够帮助开发者高效地进行数据格式转换。

522

被折叠的 条评论
为什么被折叠?



