gzip & zlib unit for Delphi(5)

2001/09/25 for Monazilla
2001/09/29 YĂcrc.pasǉ

gzipœWJ邽߂DelphipXg[NXނłB
ĂhLe[Vʓ|Ȃ̂łȂ肴菑Ă܂̂ł낵B

Ô zlib http://www.gzip.org/zlib/  1.1.3  \[XĂĂB
WindowspoCiƂł͂ȂB


^e
	zlib.pas
	gzip.pas
	crc.pas

	trees.obj
	infutil.obj
	inftrees.obj
	inflate.obj
	inffast.obj
	infcodes.obj
	infblock.obj
	deflate.obj
	d_zlib.obj
	adler32.obj

zlib.paszlib 1.1.3contrib/delphi2ɓĂ̂ɑ΂gzipg߂ɓ֐JATDecompressionStream.CreateNoHeaderǉ̂łB

*.objzlib̃W[RpĈłBzlib.pas$L̂ŁAɂłuĂB

crc.pas:
  function crc32_block( crc:Cardinal; buf:Pchar; len: Cardinal): Cardinal;
  function crc32_byte( crc:Cardinal; b:Byte): Cardinal;
    zlib̃R[hpascalɏ̂̂łB


gzip.pas:

   TGzipDecompressStream class

      constructor Create( dest: TStream );
        WJʂ̊i[Xg[w肷

      function Write(const Buffer; Count: Longint): Longint; override;
        kf[^𗬂(א؂OK, WJɑ񂪑Ƃdestwrite܂)

        ȉ̗O܂:
          EGzipInvalidFileError
          EGzipUnknownMethodError
          EGzipCorruptDataError
          ǂĂƂɏoƎvĂB


      function Read(var Buffer; Count: Longint): Longint; override;
        _~[łB܂ :-)

      function Seek(Offset: Longint; Origin: Word): Longint; override;
        ړł܂
        ړ悤Ƃ EStreamError ܂B

      property Header: TGZipRecord read FHeader;
        gzip̃wb_ǂ݂܂Bwb_łɑĂ邩ǂ͒mp܂B
        FStateǂŃXe[^XvpeBǉقǂł傤ˁc


  procedure gzDecompress( in_stream: TStream; var dest:TGzipRecord );
   ɓndestrawdataɏݐstreamĂĂԂƁB
   ꂪnilȂ΂ǂɂ܂ȂB
   O:
     EGzipInvalidFileError
     EGzipUnknownMethodError
     EGzipCorruptDataError

  procedure gzCompress( const src:TGzipRecord; out_stream: TStream );
   src.rawdata͈kf[^̐擪wĂ邱ƁB
   O:
    EGzipUnknownMethodError
    EGzipCorruptDataError

  񃌃R[h͂܂őzĂ(m

  TGZipRecord = record
    isText: boolean;
    method: TCompressionMethod;
    xfl: integer;
    os: integer;
    extra: string;
    fname: string;
    comment: string;
    mtime: TDateTime;
    rawdata: TStream;
  end;


@ȊłB
TDecompressionStreamƃRXgN^ɓnXg[̕tȂ̂ɒӂĂB
(WJʂ̏o͐w肷)


g
  TStringStream̃IuWFNgłĂɏo͂悵B
  t@Cɏo悵B
