delphi 流Stream 和 Variant 的转换函数

本文介绍了两种实用的函数:将Variant类型数据转换为Stream类型数据的VariantToStream过程,以及相反方向的StreamToVariant过程。这两种转换方法适用于Delphi等使用Variant数据类型的环境中,能够帮助开发者高效地进行数据格式转换。
作者: 陆岛工作室

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 ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值