delphi 流Stream 和 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

posted @ 2008-06-05 17:35  陆岛工作室  阅读(1273)  评论(0编辑  收藏  举报