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
  • 相关阅读:
    c/c++:字符串输入输出流
    POJ 1036Gangsters【DP】
    POJ 1157LITTLE SHOP OF FLOWERS【DP】
    一个月后....
    http://poj.org/problem?id=1258
    POJ 2677 Tour【DP】
    POJ 1160Post Office【DP】
    C基础
    linux面试fork函数题
    linux学习
  • 原文地址:https://www.cnblogs.com/xspace/p/2557925.html
Copyright © 2011-2022 走看看