zoukankan      html  css  js  c++  java
  • Delphi Variant 通用类型[3] 流 Stream的相互转换

    Delphi Variant 通用类型[3]  流 Stream的相互转换

    //1、 Variant转成流
    procedure VariantToStream(const Data: OleVariant; Stream: TStream);
    var
      p: Pointer;
    begin
      p := VarArrayLock(Data); // 加锁,并返回一个指针指向的数据。 避免运行时时刻检查
      try
        Stream.Write(p^, VarArrayHighBound(Data,1) + 1); // 返回最大的列号
      finally
        VarArrayUnlock(Data); // 解锁,使数组能重新移动或改变大小。
      end;
    end;
    
    // 2、流转成Variant
    function StreamToVariant(Stream: TStream): OleVariant;
    var
      p: Pointer;
    begin
      Result := VarArrayCreate([0, Stream.Size - 1], varByte);// 创建一个一维的数组。类型为varByte
      p := VarArrayLock(Result);
      try
        Stream.Position := 0; // 设置流的位置
        Stream.Read(p^, Stream.Size);
      finally
        VarArrayUnlock(Result);
      end;
    end;
    

      



    创建时间:2020.12.22  更新时间:

  • 相关阅读:
    JQuery Ajax使用及注意事项
    边框叠加
    AngularJS的相关应用
    JS基础,你需要掌握的要点!
    JS基础部分小结
    JS的Dom树小结
    JQuery事件与动画
    HTML
    项目
    BZOJ4851: [Jsoi2016]位运算
  • 原文地址:https://www.cnblogs.com/guorongtao/p/14172700.html
Copyright © 2011-2022 走看看