zoukankan      html  css  js  c++  java
  • 服务端OLEVARIANT数据之后传输

    将OLEVARIANT数据流化,然后对流进行压缩,还原成OLEVARIANT以后再发送。

    procedure StreamToVariant(Stream: TStream; var V: OLEVariant);
    var
      P : Pointer;
    begin
      try
        V := VarArrayCreate ([0, Stream.Size - 1], varByte);
        P := VarArrayLock (V);
        Stream.Position := 0;
        Stream.Read (P^, Stream.Size);
        VarArrayUnlock (V);
      except
        Exit;
      end;
    end;

    procedure VariantToStream(const V: OLEVariant; Stream: TStream);
    var
      P: Pointer;
    begin
      try
        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;
      except
        Exit;
      end;
    end;

    function CompressData(V: OleVariant): OleVariant;
    var
      M, M0: TMemoryStream;
    begin
      try
        M := TMemoryStream.Create;
        M0 := TMemoryStream.Create;
        try
          if V = Null then exit;
          VariantToStream(V,M);
          M.Position := 0;
          ZCompressStream(M, M0);
          StreamToVariant(M0, V);
        finally
          M.Free;
          M0.Free
        end;
        Result := V;
      except
        Exit;
      end;
    end;

    function DeCompressData(V: OleVariant): OleVariant;
    var
      M, M0: TMemoryStream;
    begin
      try
        M := TMemoryStream.Create;
        M0 := TMemoryStream.Create;
        try
          if V = Null then exit;
          VariantToStream(V,M);
          M.Position := 0;
          ZDeCompressStream(M, M0);
          StreamToVariant(M0, V);      
        finally
          M.Free;
          M0.Free
        end;
        Result := V;
      except
        Exit;
      end;
    end;

  • 相关阅读:
    cs231n --- 3 : Convolutional Neural Networks (CNNs / ConvNets)
    cs231n --- 1:线性svm与softmax
    Python的下划线_
    Python的类(class)
    python self
    MFC中应用对象的成员:窗口指针m_pMainWnd说明
    MSTP+VRRP组合组网
    VRRP组网下同网段内配置基于全局地址池的DHCP服务器
    路由器/交换机Console口登录密码丢失后如何恢复
    交换机处于同一网络作为DHCP中继与服务器
  • 原文地址:https://www.cnblogs.com/zyb2016/p/11906267.html
Copyright © 2011-2022 走看看