zoukankan      html  css  js  c++  java
  • delphi压缩与解压_不需要特别的控件

    unit unzip;
    
    
    
    interface
    
    
    
    uses
    
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    
      Dialogs, StdCtrls;
    
    
    
    type
    
      TForm1 = class(TForm)
    
        Button1: TButton;
    
        Button2: TButton;
    
        procedure Button1Click(Sender: TObject);
    
        procedure Button2Click(Sender: TObject);
    
      private
    
        { Private declarations }
    
      public
    
        { Public declarations }
    
      end;
    
    
    
    var
    
      Form1: TForm1;
    
    
    
    implementation
    
    
    
    {$R *.dfm}
    
    
    
    uses Zlib;
    
    //压缩函数
    
    procedure Zip(var fs: TMemoryStream);
    
    var
    
      cs: TCompressionStream;
    
      ms: TMemoryStream;
    
      num: Integer;
    
    begin
    
      if not(Assigned(fs) and (fs.Size>0)) then Exit;
    
    
    
        num := fs.Size;
    
        ms := TMemoryStream.Create;
    
        cs := TCompressionStream.Create(clMax, ms);
    
      try
    
        fs.SaveToStream(cs);
    
        cs.Free;
    
        //ms.Position := 0;
    
        fs.Clear;
    
        fs.WriteBuffer(num, sizeof(num));
    
        fs.CopyFrom(ms, 0);
    
      finally
    
        ms.Free;
    
      end;
    
    end;
    
    
    
    //解压函数
    
    procedure UnZip2(var fs: Tmemorystream);
    
    var
    
      ds: TDecompressionStream;
    
      ms: TMemoryStream;
    
      num: Integer;
    
    begin
    
      if not(Assigned(fs) and (fs.Size>0)) then Exit;
    
    
    
      fs.Position := 0;
    
      fs.ReadBuffer(num,sizeof(num));
    
      ms := TMemoryStream.Create;
    
      ds := TDecompressionStream.Create(fs);
    
      try
    
        ms.SetSize(num);
    
        ds.Read(ms.Memory^, num);
    
        //ms.Position := 0;
    
        fs.Clear;
    
        fs.CopyFrom(ms, 0);
    
      finally
    
        ds.Free;
    
        ms.Free;
    
      end;
    
    end;
    
    //压缩测试
    
    procedure TForm1.Button1Click(Sender: TObject);
    
    var
    
      ms: TMemoryStream;
    
    begin
    
    ms := TMemoryStream.Create;
    
      ms.LoadFromFile('D:delphiszcb.mdb');
    
      Zip(ms);
    
      ms.SaveToFile('D:delphiszcb.zip');
    
    end;
    
    
    
    //解压测试
    
    procedure TForm1.Button2Click(Sender: TObject);
    
    var
    
      ms: TMemoryStream;
    
    begin
    
      ms := TMemoryStream.Create;
    
      ms.LoadFromFile('D:delphiszcb.zip');
    
      UnZip2(ms);
    
      ms.SaveToFile('D:delphiszcb2.mdb');
    
    end;
    
    
    
    end.
  • 相关阅读:
    Python正则表达式指南
    Python中的HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies(二)
    Python中的urlparse、urllib抓取和解析网页(一)
    __name__ = '__main__'
    odoo context
    Python xlwt模块
    python中使用xlrd、xlwt操作excel
    odoo 下 get_object_reference 函数
    Python运算符
    jQuery实现contains方法不区分大小写的方法教程
  • 原文地址:https://www.cnblogs.com/westsoft/p/10382626.html
Copyright © 2011-2022 走看看