delphi 압축 및 압축 해제특별한 컨트롤이 필요 없어요.

2056 단어 delphi
delphi의 압축과 압축 해제는 비교적 간단하고 실용적이다. 나에게 있어서 이미 충분하다. 나는 클라이언트에게 압축 파일을 로컬에 다운로드한 후에 압축을 풀기만 하면 된다. 인터넷에 어떤 컨트롤러가 있는지 보자. 나는delphi6에 그 컨트롤러를 설치하지 않았다. 회사에서 관리가 비교적 엄격하고 컨트롤러를 설치하는 것이 비교적 번거롭다.끊지 말고 코드를 보세요.
 
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:\delphi\szcb.mdb');
  Zip(ms);
  ms.SaveToFile('D:\delphi\szcb.zip');
end;

//    
procedure TForm1.Button2Click(Sender: TObject);
var
  ms: TMemoryStream;
begin
  ms := TMemoryStream.Create;
  ms.LoadFromFile('D:\delphi\szcb.zip');
  UnZip2(ms);
  ms.SaveToFile('D:\delphi\szcb2.mdb');
end;

end.

좋은 웹페이지 즐겨찾기