zoukankan      html  css  js  c++  java
  • byte数组与olevariant互相转换(转)

    uses activex; function Stream2OleVariantBytes(const Stream:TStream):OleVariant; var Data:Pointer; begin Result := VarArrayCreate([0,Stream.Size-1],varByte); Data := VarArrayLock(Result); try Stream.Position := 0; Stream.Read(Data^,Stream.Size); finally VarArrayUnlock(Result); end; end; procedure OleVariantBytes2Stream(const VValue:OleVariant; Stream:TStream); var Data:Pointer; V:OleVariant; begin Data := VarArrayLock(VValue); try Stream.Seek(0,soFromEnd); Stream.Write(Data^,(VarArrayHighBound(VValue,1)-VarArrayLowBound(VValue,1)+1) * SafeArrayGetElemSize(PSafeArray(TVarData(VValue).VPointer))) finally VarArrayUnlock(VValue); end; end; procedure TForm1.FormCreate(Sender: TObject); var V:OleVariant; m:TMemoryStream; begin m:= TMemoryStream.Create; try Memo1.Lines.SaveToStream(m); V:=Stream2OleVariantBytes(m); m.Clear; Memo2.Lines.SaveToStream(m); OleVariantBytes2Stream(V,M); m.Position := 0; Caption := IntToStr(m.Size); Memo2.Lines.LoadFromStream(m); finally m.Free; end; end; ---power by 僵哥 3Q
  • 相关阅读:
    常量/静态常量
    git github仓库
    内存泄漏/溢出
    console线和RJ45
    Medium
    教师群
    编程入门学习网站
    科技传播坊公众号
    科技传播坊直播课堂 Scratch
    Scratch 疑难杂症视频
  • 原文地址:https://www.cnblogs.com/xspace/p/2557925.html
Copyright © 2011-2022 走看看