亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? zlib.pas

?? 一款用來進行網絡模擬的軟件
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
{*******************************************************}{                                                       }{       Borland Delphi Supplemental Components          }{       ZLIB Data Compression Interface Unit            }{                                                       }{       Copyright (c) 1997,99 Borland Corporation       }{                                                       }{*******************************************************}{ Updated for zlib 1.2.x by Cosmin Truta <cosmint@cs.ubbcluj.ro> }unit ZLib;interfaceuses SysUtils, Classes;type  TAlloc = function (AppData: Pointer; Items, Size: Integer): Pointer; cdecl;  TFree = procedure (AppData, Block: Pointer); cdecl;  // Internal structure.  Ignore.  TZStreamRec = packed record    next_in: PChar;       // next input byte    avail_in: Integer;    // number of bytes available at next_in    total_in: Longint;    // total nb of input bytes read so far    next_out: PChar;      // next output byte should be put here    avail_out: Integer;   // remaining free space at next_out    total_out: Longint;   // total nb of bytes output so far    msg: PChar;           // last error message, NULL if no error    internal: Pointer;    // not visible by applications    zalloc: TAlloc;       // used to allocate the internal state    zfree: TFree;         // used to free the internal state    AppData: Pointer;     // private data object passed to zalloc and zfree    data_type: Integer;   // best guess about the data type: ascii or binary    adler: Longint;       // adler32 value of the uncompressed data    reserved: Longint;    // reserved for future use  end;  // Abstract ancestor class  TCustomZlibStream = class(TStream)  private    FStrm: TStream;    FStrmPos: Integer;    FOnProgress: TNotifyEvent;    FZRec: TZStreamRec;    FBuffer: array [Word] of Char;  protected    procedure Progress(Sender: TObject); dynamic;    property OnProgress: TNotifyEvent read FOnProgress write FOnProgress;    constructor Create(Strm: TStream);  end;{ TCompressionStream compresses data on the fly as data is written to it, and  stores the compressed data to another stream.  TCompressionStream is write-only and strictly sequential. Reading from the  stream will raise an exception. Using Seek to move the stream pointer  will raise an exception.  Output data is cached internally, written to the output stream only when  the internal output buffer is full.  All pending output data is flushed  when the stream is destroyed.  The Position property returns the number of uncompressed bytes of  data that have been written to the stream so far.  CompressionRate returns the on-the-fly percentage by which the original  data has been compressed:  (1 - (CompressedBytes / UncompressedBytes)) * 100  If raw data size = 100 and compressed data size = 25, the CompressionRate  is 75%  The OnProgress event is called each time the output buffer is filled and  written to the output stream.  This is useful for updating a progress  indicator when you are writing a large chunk of data to the compression  stream in a single call.}  TCompressionLevel = (clNone, clFastest, clDefault, clMax);  TCompressionStream = class(TCustomZlibStream)  private    function GetCompressionRate: Single;  public    constructor Create(CompressionLevel: TCompressionLevel; Dest: TStream);    destructor Destroy; override;    function Read(var Buffer; Count: Longint): Longint; override;    function Write(const Buffer; Count: Longint): Longint; override;    function Seek(Offset: Longint; Origin: Word): Longint; override;    property CompressionRate: Single read GetCompressionRate;    property OnProgress;  end;{ TDecompressionStream decompresses data on the fly as data is read from it.  Compressed data comes from a separate source stream.  TDecompressionStream  is read-only and unidirectional; you can seek forward in the stream, but not  backwards.  The special case of setting the stream position to zero is  allowed.  Seeking forward decompresses data until the requested position in  the uncompressed data has been reached.  Seeking backwards, seeking relative  to the end of the stream, requesting the size of the stream, and writing to  the stream will raise an exception.  The Position property returns the number of bytes of uncompressed data that  have been read from the stream so far.  The OnProgress event is called each time the internal input buffer of  compressed data is exhausted and the next block is read from the input stream.  This is useful for updating a progress indicator when you are reading a  large chunk of data from the decompression stream in a single call.}  TDecompressionStream = class(TCustomZlibStream)  public    constructor Create(Source: TStream);    destructor Destroy; override;    function Read(var Buffer; Count: Longint): Longint; override;    function Write(const Buffer; Count: Longint): Longint; override;    function Seek(Offset: Longint; Origin: Word): Longint; override;    property OnProgress;  end;{ CompressBuf compresses data, buffer to buffer, in one call.   In: InBuf = ptr to compressed data       InBytes = number of bytes in InBuf  Out: OutBuf = ptr to newly allocated buffer containing decompressed data       OutBytes = number of bytes in OutBuf   }procedure CompressBuf(const InBuf: Pointer; InBytes: Integer;                      out OutBuf: Pointer; out OutBytes: Integer);{ DecompressBuf decompresses data, buffer to buffer, in one call.   In: InBuf = ptr to compressed data       InBytes = number of bytes in InBuf       OutEstimate = zero, or est. size of the decompressed data  Out: OutBuf = ptr to newly allocated buffer containing decompressed data       OutBytes = number of bytes in OutBuf   }procedure DecompressBuf(const InBuf: Pointer; InBytes: Integer; OutEstimate: Integer; out OutBuf: Pointer; out OutBytes: Integer);{ DecompressToUserBuf decompresses data, buffer to buffer, in one call.   In: InBuf = ptr to compressed data       InBytes = number of bytes in InBuf  Out: OutBuf = ptr to user-allocated buffer to contain decompressed data       BufSize = number of bytes in OutBuf   }procedure DecompressToUserBuf(const InBuf: Pointer; InBytes: Integer;  const OutBuf: Pointer; BufSize: Integer);const  zlib_version = '1.2.3';type  EZlibError = class(Exception);  ECompressionError = class(EZlibError);  EDecompressionError = class(EZlibError);implementationuses ZLibConst;const  Z_NO_FLUSH      = 0;  Z_PARTIAL_FLUSH = 1;  Z_SYNC_FLUSH    = 2;  Z_FULL_FLUSH    = 3;  Z_FINISH        = 4;  Z_OK            = 0;  Z_STREAM_END    = 1;  Z_NEED_DICT     = 2;  Z_ERRNO         = (-1);  Z_STREAM_ERROR  = (-2);  Z_DATA_ERROR    = (-3);  Z_MEM_ERROR     = (-4);  Z_BUF_ERROR     = (-5);  Z_VERSION_ERROR = (-6);  Z_NO_COMPRESSION       =   0;  Z_BEST_SPEED           =   1;  Z_BEST_COMPRESSION     =   9;  Z_DEFAULT_COMPRESSION  = (-1);  Z_FILTERED            = 1;  Z_HUFFMAN_ONLY        = 2;  Z_RLE                 = 3;  Z_DEFAULT_STRATEGY    = 0;  Z_BINARY   = 0;  Z_ASCII    = 1;  Z_UNKNOWN  = 2;  Z_DEFLATED = 8;{$L adler32.obj}{$L compress.obj}{$L crc32.obj}{$L deflate.obj}{$L infback.obj}{$L inffast.obj}{$L inflate.obj}{$L inftrees.obj}{$L trees.obj}{$L uncompr.obj}{$L zutil.obj}procedure adler32; external;procedure compressBound; external;procedure crc32; external;procedure deflateInit2_; external;procedure deflateParams; external;function _malloc(Size: Integer): Pointer; cdecl;begin  Result := AllocMem(Size);end;procedure _free(Block: Pointer); cdecl;begin  FreeMem(Block);end;procedure _memset(P: Pointer; B: Byte; count: Integer); cdecl;begin  FillChar(P^, count, B);end;procedure _memcpy(dest, source: Pointer; count: Integer); cdecl;begin  Move(source^, dest^, count);end;// deflate compresses datafunction deflateInit_(var strm: TZStreamRec; level: Integer; version: PChar;  recsize: Integer): Integer; external;function deflate(var strm: TZStreamRec; flush: Integer): Integer; external;function deflateEnd(var strm: TZStreamRec): Integer; external;// inflate decompresses datafunction inflateInit_(var strm: TZStreamRec; version: PChar;  recsize: Integer): Integer; external;function inflate(var strm: TZStreamRec; flush: Integer): Integer; external;function inflateEnd(var strm: TZStreamRec): Integer; external;function inflateReset(var strm: TZStreamRec): Integer; external;function zlibAllocMem(AppData: Pointer; Items, Size: Integer): Pointer; cdecl;begin//  GetMem(Result, Items*Size);  Result := AllocMem(Items * Size);end;procedure zlibFreeMem(AppData, Block: Pointer); cdecl;begin  FreeMem(Block);end;{function zlibCheck(code: Integer): Integer;begin  Result := code;  if code < 0 then    raise EZlibError.Create('error');    //!!end;}function CCheck(code: Integer): Integer;begin  Result := code;  if code < 0 then    raise ECompressionError.Create('error'); //!!end;function DCheck(code: Integer): Integer;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲主播在线观看| 亚洲精品一区二区在线观看| 国产一区二区三区高清播放| 丝袜国产日韩另类美女| 亚洲观看高清完整版在线观看| 亚洲日本护士毛茸茸| 中文字幕一区二区视频| 国产精品三级视频| 中文字幕乱码一区二区免费| 欧美国产日产图区| 亚洲欧洲综合另类在线| 亚洲另类春色校园小说| 亚洲.国产.中文慕字在线| 首页综合国产亚洲丝袜| 日本不卡在线视频| 国内精品写真在线观看| 高清av一区二区| 99精品国产99久久久久久白柏| 一本色道亚洲精品aⅴ| 欧美日韩在线综合| 日韩欧美一区二区免费| 国产欧美视频一区二区三区| 日韩美女视频19| 亚洲第一成人在线| 国产一区二三区| www.欧美日韩| 欧美一区二区三区四区五区 | 粉嫩aⅴ一区二区三区四区| 成人av在线资源| 欧美三级电影一区| 久久免费的精品国产v∧| 中文字幕日韩av资源站| 午夜精品一区二区三区三上悠亚| 日韩国产高清在线| 国产成人精品在线看| 在线一区二区三区四区五区| 日韩一级片在线观看| 亚洲天堂a在线| 久久精品国产亚洲一区二区三区| 成人免费黄色在线| 日韩精品一区在线| 一级女性全黄久久生活片免费| 久久精品国产精品青草| 99精品国产热久久91蜜凸| 日韩欧美的一区| 欧美激情资源网| 日日骚欧美日韩| av不卡在线播放| 欧美精品一区二| 亚洲综合一区二区| 成人免费看视频| 亚洲免费观看高清完整版在线 | 日韩一区二区免费在线电影 | 91啪在线观看| 久久久噜噜噜久噜久久综合| 亚洲国产欧美日韩另类综合| 国产成人亚洲综合a∨婷婷| 欧美日韩精品一区视频| 亚洲女厕所小便bbb| 国产伦精一区二区三区| 欧美一区二区二区| 香蕉成人啪国产精品视频综合网 | 亚洲欧洲国产专区| 国产精品系列在线观看| 日韩精品中文字幕在线不卡尤物 | 精品久久久久久久久久久久久久久| ...av二区三区久久精品| 青娱乐精品视频在线| 欧美人牲a欧美精品| 亚洲男人的天堂在线观看| 粉嫩蜜臀av国产精品网站| 国产三级精品三级| 成人免费黄色大片| 国产精品美女久久久久久久久久久 | 欧美日韩综合在线| 亚洲男同1069视频| 色欧美乱欧美15图片| 亚洲人成精品久久久久| av中文字幕不卡| 亚洲色图丝袜美腿| av电影在线观看一区| 亚洲人成伊人成综合网小说| 9l国产精品久久久久麻豆| 国产精品久久久久影院色老大 | 国产精品电影院| 成人免费黄色大片| 亚洲欧美国产77777| 一本在线高清不卡dvd| 一区二区三区国产豹纹内裤在线| 国产欧美一区二区精品性色超碰 | av一区二区三区四区| 中文字幕中文字幕中文字幕亚洲无线| 成人免费视频网站在线观看| 国产精品午夜在线观看| 色诱亚洲精品久久久久久| 亚洲午夜精品一区二区三区他趣| 欧美日韩一二三| 看电视剧不卡顿的网站| 久久久99精品久久| 成人动漫精品一区二区| 依依成人精品视频| 在线不卡的av| 国产二区国产一区在线观看| 亚洲三级免费电影| 欧美日韩免费视频| 国产精品资源网| 亚洲黄色性网站| 日韩无一区二区| 国产99一区视频免费| 亚洲综合精品自拍| 久久久不卡影院| 在线观看亚洲精品视频| 国产在线精品一区二区不卡了| 国产精品午夜在线| 日韩三级在线观看| 色婷婷综合视频在线观看| 日韩在线观看一区二区| 欧美激情一区二区三区不卡| 在线免费观看视频一区| 国产原创一区二区三区| 亚洲高清视频在线| 中文字幕第一区综合| 在线播放一区二区三区| 99精品视频在线观看| 久久99日本精品| 亚洲综合色婷婷| 国产三级欧美三级| 日韩一级视频免费观看在线| 91视频一区二区| 国产一区欧美二区| 美脚の诱脚舐め脚责91| 亚洲制服丝袜一区| 亚洲少妇屁股交4| 久久你懂得1024| 日韩久久久精品| 欧美另类z0zxhd电影| 91麻豆国产福利在线观看| 狠狠色狠狠色综合系列| 亚洲国产精品久久人人爱| 国产精品免费视频网站| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美影院一区二区三区| 色偷偷久久人人79超碰人人澡| 国产1区2区3区精品美女| 激情小说亚洲一区| 久久 天天综合| 免费观看在线综合色| 日韩制服丝袜av| 91黄色免费看| 91视频免费看| 91小视频在线| 在线免费观看日本欧美| 日本乱人伦aⅴ精品| 91蝌蚪porny| 色天使久久综合网天天| 欧美色综合网站| 欧美日韩aaa| 91精品国产欧美日韩| 欧美一区二区三区在线电影| 欧美一级高清大全免费观看| 在线综合视频播放| 91精品免费在线观看| 日韩欧美另类在线| 日韩精品一区二区在线观看| 欧美电影免费观看高清完整版| 91精品国产综合久久久久久久| 日韩一区和二区| 精品国产第一区二区三区观看体验| 精品成人佐山爱一区二区| 久久精品视频在线看| 亚洲欧洲美洲综合色网| 亚洲女同一区二区| 日韩精品一二三四| 国产美女精品人人做人人爽| 成人中文字幕合集| 91国偷自产一区二区使用方法| 91高清视频在线| 欧美一级一级性生活免费录像| 精品国产一区二区三区av性色| 久久影院午夜论| 亚洲精品五月天| 青草国产精品久久久久久| 国产成人在线网站| 色天使色偷偷av一区二区| 欧美一级片在线| 国产精品久久久久9999吃药| 亚洲大片免费看| 国产成人午夜精品影院观看视频| 91麻豆免费视频| 精品福利一区二区三区免费视频| 中文字幕在线不卡一区二区三区| 亚洲国产欧美在线| 国产成人综合在线观看| 欧美性xxxxx极品少妇| 久久久精品免费网站| 一区二区三区欧美亚洲| 九九热在线视频观看这里只有精品| 成人av动漫网站| 日韩美女视频一区二区在线观看| 亚洲人精品一区|