⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uzip.pas

📁 DAD2.0 上传下传DAD2.0 上传下传DAD2.0 上传下传DAD2.0 上传下传
💻 PAS
字号:
unit uZip;

interface

uses Classes,Windows;
{
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, IdGlobal,
  IdComponent, IdTCPConnection, IdTCPClient, IdHTTP,
  IdBaseComponent, IdAntiFreezeBase, IdAntiFreeze, StdCtrls, IdIntercept,
  IdLogBase, IdLogDebug, OleCtrls, SHDocVw, activex, StrUtils, DB,
     IdURI,
  Registry, DateUtils, IdHTTPServer, IdCookieManager, SyncObjs,
  ADODB, IdIOHandlerSocket, idSocks, Wininet, shellapi;
  }

function ZIP(mInputStream: TStream; mOutputStream: TStream ): BOOL;
function UNZIP(mInputStream: TStream; mOutputStream: TStream): BOOL;

implementation

uses ZLib;

function ZIP(mInputStream: TStream; mOutputStream: TStream ): BOOL;
var
  p: pchar;
  TCS: TCompressionStream;
  TDS: TDecompressionStream;
  ncount: integer;
begin
  p := nil;
  TCS := nil;
  TDS := nil;
  result := false;
  if not (Assigned(mInputStream) and Assigned(mOutputStream)) then Exit;
  try
    TCS := TCompressionStream.Create(clMax, mOutputStream);
    ncount := mInputStream.size;
    getMem(p, ncount);
    mInputStream.ReadBuffer(p^, ncount);
    TCS.WriteBuffer((@ncount)^, sizeof(ncount));
    TCS.WriteBuffer(p^, ncount);
    //关键代码:写入流
  finally
    TCS.Free;
    FreeMem(p);
  end;
  result := true;
end;


function UNZIP(mInputStream: TStream; mOutputStream: TStream): BOOL;
var
  p: pchar;
  TCS: TCompressionStream;
  TDS: TDecompressionStream;
  ncount: Integer;
begin
  p := nil;
  TCS := nil;
  TDS := nil;
  result := false;
  if not (Assigned(mInputStream) and Assigned(mOutputStream)) then Exit;
  try
    TDS := TDecompressionStream.Create(mInputStream); //其中的clMax表示压缩级别,可以更改,值是下列参数之一:clNone, clFastest, clDefault, clMax
//    ncount := 57974;
    TDS.ReadBuffer(ncount, sizeof(ncount));
    getMem(p, ncount);
    TDS.ReadBuffer(p^, ncount);

    mOutputStream.WriteBuffer(p^, ncount);
    //关键代码:写入流
  finally
    TDS.Free;
    FreeMem(p);
  end;
  result := true;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -