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

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

?? myldbzlib.pas

?? 一個本地database引擎,支持中文T_Sql查詢,兼容DELPHI標準數據庫控件
?? PAS
字號:
unit MYLDBZlib;

{$I MYLDBVer.Inc}
{$I CompilerDefines.inc}

interface

uses Sysutils, Classes;

resourcestring
 sTargetBufferTooSmall = 'ZLib error: target buffer may be too small';
 sInvalidStreamOp = 'Invalid stream operation';


type
  TAlloc = function (AppData: Pointer; Items, Size: Integer): Pointer; register;
  TFree = procedure (AppData, Block: Pointer); register;

  // Internal structure.  Ignore.
{  TZStreamRec = packed record
    next_in: PChar;       // next input byte
    avail_in: Integer;    // number of bytes available at next_in
    total_in: Int64;    // 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: Int64;   // 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;
}
  TZStreamRec = packed record
    next_in: PChar; // next input byte
    avail_in: Longint; // 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: Longint; // 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
    state: Pointer; // not visible by applications
    zalloc: TAlloc; // used to allocate the internal state
    zfree: TFree; // used to free the internal state
    opaque: 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;

{ 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 ZLIBCompressBuf(
                      const InBuf: Pointer; InBytes: Integer;
                      out OutBuf: Pointer; out OutBytes: Integer;
                      compMode: Byte = 1
                      );


{ 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 ZLIBDecompressBuf(const InBuf: Pointer; InBytes: Integer;
 OutEstimate: Integer; out OutBuf: Pointer; out OutBytes: Integer);


const
  zlib_version = '1.2.2';

type
  EZlibError = class(Exception);
  ECompressionError = class(EZlibError);
  EDecompressionError = class(EZlibError);

{$IFNDEF BCB4}
function adler32(adler: Cardinal; buf: PChar; len: Integer): Cardinal;
{$ENDIF}

function CCheck(code: Integer): Integer;
function DCheck(code: Integer): Integer;

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_DEFAULT_STRATEGY    = 0;

  Z_BINARY   = 0;
  Z_ASCII    = 1;
  Z_UNKNOWN  = 2;

  Z_DEFLATED = 8;

implementation



const
  Levels: array [0..3] of ShortInt =
    (Z_NO_COMPRESSION, Z_BEST_SPEED, Z_DEFAULT_COMPRESSION, Z_BEST_COMPRESSION);

  _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 adler32.obj}
{$L deflate.obj}
{$L infback.obj}
{$L inffast.obj}
{$L inflate.obj}
{$L inftrees.obj}
{$L trees.obj}
{$L crc32.obj}
{$L compress.obj}

procedure _tr_init; external;
procedure _tr_tally; external;
procedure _tr_flush_block; external;
procedure _tr_align; external;
procedure _tr_stored_block; external;
{$IFDEF BD5}
  function adler32; external;
{$ENDIF}
{$IFDEF BCB5}
  function adler32; external;
{$ELSE}
  {$IFDEF BD4}
    procedure adler32; external;
  {$ENDIF}
  {$IFDEF BCB4}
    procedure adler32; external;
  {$ENDIF}
{$ENDIF}
{** deflate routines ********************************************************}

function deflateInit_(var strm: TZStreamRec; level: Integer; version: PChar;
  recsize: Integer): Integer; external;

function DeflateInit2_(var strm: TZStreamRec; level: integer; method: integer; windowBits: integer;
  memLevel: integer; strategy: integer; version: PChar; recsize: integer): integer; external;

function deflate(var strm: TZStreamRec; flush: Integer): Integer;
  external;

function deflateEnd(var strm: TZStreamRec): Integer; external;

{** inflate routines ********************************************************}

function inflateInit_(var strm: TZStreamRec; version: PChar;
  recsize: Integer): Integer; external;

function inflateInit2_(var strm: TZStreamRec; windowBits: integer;
  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;


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;





function zcAlloc(AppData: Pointer; Items, Size: Integer): Pointer; register;
begin
  Result := AllocMem(Items * Size);
end;

procedure zcFree(AppData, Block: Pointer); register;
begin
  FreeMem(Block);
end;

function CCheck(code: Integer): Integer;
begin
  Result := code;
  if code < 0 then
    raise ECompressionError.Create('error'); //!!
end;

function DCheck(code: Integer): Integer;
begin
  Result := code;
  if code < 0 then
    raise EDecompressionError.Create('error');  //!!
end;

procedure ZLIBCompressBuf(const InBuf: Pointer; InBytes: Integer;
                      out OutBuf: Pointer; out OutBytes: Integer;
                      compMode: Byte = 1
                      );
var
  strm: TZStreamRec;
  P: Pointer;
begin
  FillChar(strm, sizeof(strm), 0);
  strm.zalloc := zcAlloc;
  strm.zfree := zcFree;
  OutBytes := ((InBytes + (InBytes div 10) + 12) + 255) and not 255;
//  GetMem(OutBuf, OutBytes);
  OutBuf := AllocMem(OutBytes);
  try
    strm.next_in := InBuf;
    strm.avail_in := InBytes;
    strm.next_out := OutBuf;
    strm.avail_out := OutBytes;
    CCheck(deflateInit_(strm, compMode, zlib_version, sizeof(strm)));
    try
      while CCheck(deflate(strm, Z_FINISH)) <> Z_STREAM_END do
      begin
        P := OutBuf;
        Inc(OutBytes, 256);
        ReallocMem(OutBuf, OutBytes);
        strm.next_out := PChar(Integer(OutBuf) + (Integer(strm.next_out) - Integer(P)));
        strm.avail_out := 256;
      end;
    finally
      CCheck(deflateEnd(strm));
    end;
    ReallocMem(OutBuf, strm.total_out);
    OutBytes := strm.total_out;
  except
    FreeMem(OutBuf);
    raise
  end;
end;


procedure ZLIBDecompressBuf(const InBuf: Pointer; InBytes: Integer;
  OutEstimate: Integer; out OutBuf: Pointer; out OutBytes: Integer);
label m_exit;
var
  zstream: TZStreamRec;
  delta  : Integer;
  x:       Integer;
begin
  FillChar(zstream,SizeOf(TZStreamRec),0);

  delta := (InBytes + 255) and not 255;

  if ((outEstimate <= 0) or (outEstimate > 10000)) then
   outBytes := delta
  else
   outBytes := outEstimate;

  GetMem(outBuf,outBytes);

//  try
    zstream.next_in := inBuf;
    zstream.avail_in := InBytes;
    zstream.next_out := outBuf;
    zstream.avail_out := outBytes;

//    DCheck(InflateInit_(zstream,zlib_version,sizeof(zstream)));
    if (InflateInit_(zstream,zlib_version,sizeof(zstream)) < 0) then
     goto m_exit;

//    try
      while (True) do
      begin
//      DCheck(inflate(zstream,Z_NO_FLUSH)) <> Z_STREAM_END
        x := inflate(zstream,Z_NO_FLUSH);
        if (x < 0) then
         goto m_exit;

        if (x = Z_STREAM_END) then
         break;

        Inc(outBytes,delta);
        ReallocMem(outBuf,outBytes);

        zstream.next_out := PChar(Integer(outBuf) + zstream.total_out);
        zstream.avail_out := delta;
      end; // while
//    finally
//      DCheck(inflateEnd(zstream));
      if (inflateEnd(zstream) < 0) then
     goto m_exit;
//    end;

    ReallocMem(outBuf,zstream.total_out);
    outBytes := zstream.total_out;
  Exit;

m_exit:
// error
//  except
   if (outBuf <> nil) then
    FreeMem(outBuf);
    outBuf := nil;
   outBytes := 0;
//    raise;
//  end;
end;


end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本久久综合亚洲鲁鲁五月天| 中文字幕一区二区三区乱码在线 | 欧美一卡二卡在线观看| 青椒成人免费视频| 日本一区二区三区在线不卡 | 色婷婷亚洲综合| 久久99久久久欧美国产| 亚洲九九爱视频| 欧美激情综合五月色丁香| 欧美日产国产精品| 色天使色偷偷av一区二区| 国产一区二区在线视频| 日日夜夜精品视频免费| 亚洲激情中文1区| 日韩免费视频线观看| 在线免费一区三区| av动漫一区二区| 国产很黄免费观看久久| 久久国产三级精品| 男男视频亚洲欧美| 日韩av在线免费观看不卡| 亚洲国产视频在线| 亚洲一区二区视频在线观看| 日韩免费视频一区二区| 欧美一级日韩免费不卡| 6080yy午夜一二三区久久| 色婷婷久久久久swag精品| 99在线精品观看| 91在线国产福利| 国产成人免费视频网站高清观看视频 | 在线免费一区三区| 欧美人体做爰大胆视频| 欧美日韩精品三区| 欧美午夜一区二区| 色偷偷成人一区二区三区91| 91久久国产最好的精华液| 国产精品白丝av| 国产成人在线视频免费播放| 裸体健美xxxx欧美裸体表演| 国产麻豆精品theporn| 国产成人亚洲综合a∨婷婷| 成人性色生活片| 99久久99久久精品免费观看 | 国产中文字幕一区| 91免费视频网| 欧美一区二区三区色| 337p粉嫩大胆色噜噜噜噜亚洲| 精品国产乱码久久久久久图片 | 久久久久久9999| 亚洲一区二区三区四区在线| 日韩高清不卡在线| caoporn国产精品| 欧美丰满高潮xxxx喷水动漫| 久久久精品综合| 亚洲午夜精品在线| 国内精品免费在线观看| 色婷婷综合久色| 精品国产乱码久久久久久浪潮| 久久综合一区二区| 国产精品成人免费在线| 久久精品国产秦先生| 91在线你懂得| 日本一区二区综合亚洲| 日本伊人午夜精品| 国产在线精品一区二区夜色| 欧美日韩在线不卡| 亚洲天堂成人在线观看| 国产精品自在在线| 2022国产精品视频| 日韩高清一区二区| 欧美日韩一区精品| 国产精品久久久久精k8| 蜜桃久久久久久| 欧美日韩精品三区| 国产在线播放一区三区四| 99精品视频在线观看免费| 精品国产乱码久久久久久浪潮| 亚洲成人激情自拍| 欧美剧情电影在线观看完整版免费励志电影 | 国产九九视频一区二区三区| 26uuu精品一区二区在线观看| 精品在线你懂的| 久久精品日韩一区二区三区| 成人免费视频国产在线观看| 国产日本一区二区| 色网站国产精品| 婷婷成人综合网| 欧美sm极限捆绑bd| 国产大陆亚洲精品国产| 亚洲人成精品久久久久| 欧美自拍丝袜亚洲| 精品一区二区日韩| 国产精品免费网站在线观看| 91啪在线观看| 男人操女人的视频在线观看欧美| 国产女人18毛片水真多成人如厕 | 91精品在线免费| 波多野洁衣一区| 美腿丝袜亚洲三区| 中文字幕一区免费在线观看| 欧美日韩中文另类| 国产高清亚洲一区| 亚洲成av人片在www色猫咪| 久久这里只有精品6| 欧美日韩国产综合一区二区三区| 日本不卡一区二区三区高清视频| 国产精品视频在线看| 欧美一区二区性放荡片| 69久久夜色精品国产69蝌蚪网| 麻豆精品一区二区综合av| 日韩女同互慰一区二区| 欧美日本一区二区| 日韩三级视频在线观看| 日韩免费观看高清完整版| 亚洲精品一区二区三区在线观看| 欧美国产视频在线| 亚洲色图.com| 日韩av电影免费观看高清完整版 | 在线观看日韩高清av| 精品一区二区三区久久久| 亚洲国产美女搞黄色| 日韩欧美一卡二卡| 6080国产精品一区二区| 欧美日韩高清一区二区不卡| 欧亚洲嫩模精品一区三区| 日本高清视频一区二区| 在线一区二区观看| 一本色道久久综合狠狠躁的推荐 | 欧美日本一区二区| 欧美一级免费大片| 精品美女一区二区三区| 国产精品免费久久| 亚洲精品v日韩精品| 亚洲va国产va欧美va观看| 日韩成人午夜电影| 精品一区二区三区av| www.久久久久久久久| 欧美在线影院一区二区| 欧美久久久久久蜜桃| 久久久久亚洲蜜桃| 亚洲一区二区欧美日韩 | 韩国精品一区二区| 91在线国产观看| 欧美变态tickle挠乳网站| 亚洲国产一二三| 久久国产福利国产秒拍| 亚洲乱码日产精品bd| 亚洲愉拍自拍另类高清精品| 国产精品进线69影院| 久久综合久久鬼色中文字| 日韩午夜激情av| 久久香蕉国产线看观看99| 欧美一区二区三区在线电影| 国产视频不卡一区| 亚洲天堂中文字幕| 免费人成在线不卡| 91国产成人在线| 精品国产91亚洲一区二区三区婷婷| 精品国产凹凸成av人导航| 亚洲人成人一区二区在线观看 | 国产婷婷精品av在线| 三级一区在线视频先锋 | 337p亚洲精品色噜噜噜| 亚洲欧洲韩国日本视频| 极品美女销魂一区二区三区免费| 色综合天天综合| 日韩av一区二区在线影视| 色综合久久久久久久| 国产日韩精品一区二区三区在线| 五月开心婷婷久久| 欧美精品v日韩精品v韩国精品v| 中文字幕日韩欧美一区二区三区| 国产精品一区三区| 日韩美女天天操| 精品一区二区在线视频| 日韩欧美国产成人一区二区| 蜜臀av一区二区| 日韩丝袜情趣美女图片| 免费看日韩a级影片| 日韩一区二区三区四区| 精品一区二区影视| 欧美成人vr18sexvr| 国产在线看一区| 亚洲国产成人午夜在线一区| 91丨九色丨蝌蚪丨老版| 亚洲免费电影在线| 欧美日韩二区三区| 久久国产精品免费| 亚洲欧美怡红院| 欧美日韩精品是欧美日韩精品| 免费成人在线影院| 亚洲国产精品成人综合色在线婷婷| 99久久国产综合精品麻豆| 亚洲精品国久久99热| 91精品国产麻豆| 99久久精品99国产精品| 性做久久久久久免费观看| 日韩一二在线观看| 99精品国产91久久久久久| 五月婷婷色综合|