zoukankan      html  css  js  c++  java
  • 流的压缩与解压缩

    uses Zlib; 
    //压缩 
    procedure DoCompress(var CompressedStream: TMemoryStream); 
    var 
      SourceStream: TCompressionStream; 
      DestStream: TMemoryStream; 
      Count: int64; 
    Begin 
      CompressedStream.Position := 0; 
      Count := CompressedStream.Size; 
      if Count=0 then     //错误 
        Exit; 
      DestStream := TMemoryStream.Create; 
      SourceStream:=TCompressionStream.Create(clMax, DestStream); 
      Try 
        CompressedStream.SaveToStream(SourceStream); 
        SourceStream.Free; 
        CompressedStream.Clear; 
        CompressedStream.WriteBuffer(Count, SizeOf(Count)); 
        CompressedStream.CopyFrom(DestStream, 0); 
      finally 
        DestStream.Free; 
      end; 
      CompressedStream.Position := 0; 
    end; 

    //解压缩 
    procedure DoUncompress(var UnCompressedStream: TMemoryStream); 
    var 
      Count: int64; 
      SourceStream: TDecompressionStream; 
      Buffer: pchar; 
    begin 
      UnCompressedStream.Position:=0; 
      UnCompressedStream.ReadBuffer(Count, sizeof(Count)); 
      if count<0 then 
      begin 
        UnCompressedStream.Position:=0; 
        exit; 
      end; 
      SourceStream := TDecompressionStream.Create(UnCompressedStream); 
      Getmem(Buffer, Count); 
      SourceStream.Read(Buffer^, Count); 
      freeandnil(SourceStream); 
      UnCompressedStream.Clear; 
      UnCompressedStream.WriteBuffer(Buffer^,Count); 
      UnCompressedStream.Position:=0; 
      freemem(Buffer); 
    end; 

  • 相关阅读:
    设置圆形头型并且可以点击
    不可忽略的知识点
    【Java基础】03_Java常用API
    常用键盘功能键和快捷键以及DOS命令
    【Excel 2013 数据透视表 学习】一、创建数据透视表
    【Java基础】05_异常&File
    【Java基础】04_集合框架
    【设计模式之禅】第2章 里氏替换原则
    【设计模式之禅】第1章 单一职责原则
    Eclipse中快捷键的使用
  • 原文地址:https://www.cnblogs.com/yych/p/1901408.html
Copyright © 2011-2022 走看看