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

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

?? zlib.pas

?? emacs的一個非常有用的插件,叫xrefactory,可以實現source insight里的那種函數跳轉.和cscope(跳回來不方便)配合使用,非常的不錯.
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
{*******************************************************}{                                                       }{       Delphi Supplemental Components                  }{       ZLIB Data Compression Interface Unit            }{                                                       }{       Copyright (c) 1997 Borland International        }{                                                       }{*******************************************************}{ Modified for zlib 1.1.3 by Davide Moretti <dave@rimini.com }unit zlib;interfaceuses Sysutils, Classes;type  TAlloc = function (AppData: Pointer; Items, Size: Integer): Pointer;  TFree = procedure (AppData, Block: Pointer);  // Internal structure.  Ignore.  TZStreamRec = packed record    next_in: PChar;       // next input byte    avail_in: Integer;    // number of bytes available at next_in    total_in: Integer;    // 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: Integer;   // 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: Integer;       // adler32 value of the uncompressed data    reserved: Integer;    // 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);const  zlib_version = '1.1.3';type  EZlibError = class(Exception);  ECompressionError = class(EZlibError);  EDecompressionError = class(EZlibError);function adler32(adler: Integer; buf: PChar; len: Integer): Integer;implementationconst  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_DEFAULT_STRATEGY    = 0;  Z_BINARY   = 0;  Z_ASCII    = 1;  Z_UNKNOWN  = 2;  Z_DEFLATED = 8;  _z_errmsg: array[0..9] of PChar = (    'need dictionary',      // Z_NEED_DICT      (2)    'stream end',           // Z_STREAM_END     (1)    '',                     // Z_OK             (0)    'file error',           // Z_ERRNO          (-1)    'stream error',         // Z_STREAM_ERROR   (-2)    'data error',           // Z_DATA_ERROR     (-3)    'insufficient memory',  // Z_MEM_ERROR      (-4)    'buffer error',         // Z_BUF_ERROR      (-5)    'incompatible version', // Z_VERSION_ERROR  (-6)    ''  );{$L deflate.obj}{$L inflate.obj}{$L inftrees.obj}{$L trees.obj}{$L adler32.obj}{$L infblock.obj}{$L infcodes.obj}{$L infutil.obj}{$L inffast.obj}procedure _tr_init; external;procedure _tr_tally; external;procedure _tr_flush_block; external;procedure _tr_align; external;procedure _tr_stored_block; external;function adler32; external;procedure inflate_blocks_new; external;procedure inflate_blocks; external;procedure inflate_blocks_reset; external;procedure inflate_blocks_free; external;procedure inflate_set_dictionary; external;procedure inflate_trees_bits; external;procedure inflate_trees_dynamic; external;procedure inflate_trees_fixed; external;procedure inflate_codes_new; external;procedure inflate_codes; external;procedure inflate_codes_free; external;procedure _inflate_mask; external;procedure inflate_flush; external;procedure inflate_fast; external;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 zcalloc(AppData: Pointer; Items, Size: Integer): Pointer;begin  GetMem(Result, Items*Size);end;procedure zcfree(AppData, Block: Pointer);begin  FreeMem(Block);end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
懂色av中文字幕一区二区三区| 亚洲午夜电影在线观看| 国产精品短视频| 美腿丝袜亚洲一区| 91丨九色丨蝌蚪丨老版| 久久婷婷国产综合精品青草| 亚洲福利一区二区三区| 972aa.com艺术欧美| 精品国产精品网麻豆系列| 亚洲男人的天堂网| av激情综合网| 国产日产欧美一区| 国产一区二区在线观看视频| 欧美麻豆精品久久久久久| 亚洲男女一区二区三区| 成人美女视频在线观看18| 精品欧美一区二区三区精品久久 | 亚洲在线视频一区| 成人免费毛片app| 久久久久久久一区| 久久福利资源站| 日韩久久免费av| 日韩av电影天堂| 欧美嫩在线观看| 三级久久三级久久久| 欧美性猛交一区二区三区精品| 国产精品视频麻豆| 成人性视频免费网站| 国产亚洲福利社区一区| 国产麻豆午夜三级精品| 久久色中文字幕| 国产一区在线精品| 久久久亚洲午夜电影| 国产黄人亚洲片| 国产欧美日韩久久| 91亚洲精品久久久蜜桃| 亚洲视频1区2区| 色老头久久综合| 婷婷开心久久网| 欧美一级免费观看| 国产一区在线观看视频| 国产欧美精品日韩区二区麻豆天美| 丁香亚洲综合激情啪啪综合| 国产精品萝li| 欧美亚洲丝袜传媒另类| 午夜国产不卡在线观看视频| 欧美成人福利视频| 国产二区国产一区在线观看| 国产精品久久久久久久久久久免费看| av电影在线不卡| 亚洲午夜激情网站| 精品国偷自产国产一区| 国产成人欧美日韩在线电影| 亚洲人快播电影网| 欧美精品vⅰdeose4hd| 国精品**一区二区三区在线蜜桃| 国产喂奶挤奶一区二区三区| 91香蕉视频mp4| 日日夜夜一区二区| 国产日产欧美精品一区二区三区| 91麻豆福利精品推荐| 亚洲成人高清在线| 久久综合九色综合欧美亚洲| 色综合天天天天做夜夜夜夜做| 亚洲第一狼人社区| 国产日本欧洲亚洲| 欧美日韩性生活| 成人免费看片app下载| 亚洲一区二区高清| 欧美激情综合五月色丁香小说| 在线视频欧美区| 国产精品2024| 日韩极品在线观看| 1区2区3区国产精品| 欧美一区二区三区性视频| av高清不卡在线| 韩国精品主播一区二区在线观看| 樱桃国产成人精品视频| 久久久.com| 91精品国产色综合久久不卡蜜臀 | 奇米777欧美一区二区| 国产精品女主播av| 91精品国产手机| 日本国产一区二区| 国产河南妇女毛片精品久久久 | 日韩中文字幕av电影| 亚洲欧洲在线观看av| 欧美va亚洲va香蕉在线| 欧美日韩精品一区二区天天拍小说 | 韩国三级在线一区| 亚洲成av人片在线| 亚洲激情在线播放| 国产精品久久久久影院| 26uuu国产在线精品一区二区| 欧美日韩精品高清| 色偷偷88欧美精品久久久| 成人深夜福利app| 国产一区二区伦理| 裸体一区二区三区| 日韩国产在线一| 亚洲成年人影院| 亚洲精品国产第一综合99久久 | 久久色视频免费观看| 欧美日本免费一区二区三区| 在线精品视频小说1| 99久久777色| 色综合色综合色综合| 91亚洲午夜精品久久久久久| 99re热视频精品| 99久久伊人久久99| 成人性生交大片免费看中文网站| 国产成人日日夜夜| 波多野结衣精品在线| 大胆欧美人体老妇| 成人黄色在线网站| 99视频精品免费视频| 91视频91自| 欧美亚洲愉拍一区二区| 欧美调教femdomvk| 欧美日本视频在线| 欧美α欧美αv大片| 久久午夜老司机| 中文字幕在线观看不卡| ●精品国产综合乱码久久久久| 亚洲丝袜另类动漫二区| 亚洲综合在线第一页| 一区二区三区四区激情| 亚洲小说欧美激情另类| 午夜精品久久久久久久久久| 天天综合网天天综合色 | 亚洲福利电影网| 奇米精品一区二区三区在线观看| 久久精品国产在热久久| 国产精品一区久久久久| 91免费国产在线| 欧美猛男超大videosgay| 日韩亚洲欧美综合| 久久亚洲一区二区三区明星换脸| 欧美激情在线一区二区| 一区二区三区四区精品在线视频 | 久久久久久久久99精品| 国产精品美女久久福利网站| 亚洲一级电影视频| 久久黄色级2电影| 成人av免费在线| 欧美一区二区三区视频| 久久精品亚洲一区二区三区浴池| 亚洲人成网站在线| 久88久久88久久久| www.日韩在线| 日韩一区二区三区电影| 国产精品国产自产拍在线| 亚洲自拍与偷拍| 国内精品久久久久影院色| 91最新地址在线播放| 精品日韩av一区二区| 伊人婷婷欧美激情| 国产一区二区不卡在线| 欧美亚洲国产一区二区三区va| 欧美本精品男人aⅴ天堂| 亚洲欧美日韩人成在线播放| 激情图区综合网| 欧美猛男男办公室激情| 国产精品嫩草久久久久| 日韩**一区毛片| 91视频在线观看免费| 久久久久久久久岛国免费| 视频一区在线播放| 99精品偷自拍| 亚洲.国产.中文慕字在线| 国产一区二区在线看| 日韩一级成人av| 亚洲国产va精品久久久不卡综合| 成人性视频网站| 久久精品免视看| 日本va欧美va精品发布| 欧美日韩国产小视频| 亚洲欧美一区二区不卡| 国产盗摄视频一区二区三区| 欧美一卡二卡在线| 亚洲成人免费看| 欧美午夜在线一二页| 亚洲日本va在线观看| 成人精品小蝌蚪| 久久一区二区三区国产精品| 欧美a级理论片| 欧美日韩精品电影| 午夜婷婷国产麻豆精品| 在线观看免费视频综合| 亚洲激情在线播放| 91浏览器打开| 亚洲激情六月丁香| 一本在线高清不卡dvd| 综合网在线视频| 不卡的av中国片| 亚洲日本成人在线观看| 色综合久久66| 一个色在线综合| 在线观看视频一区| 亚洲国产精品一区二区久久恐怖片|