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

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

?? kpbits.pas

?? delphi 的壓縮工具代碼
?? PAS
字號:
{ ********************************************************************************** }
{                                                                                    }
{ 	 COPYRIGHT 1997 Kevin Boylan                                                    }
{     Source File: Bits.pas                                                          }
{     Description: VCLZip component - native Delphi zip component.                   }
{     Date:        March 1997                                                        }
{     Author:      Kevin Boylan, CIS: boylank                                        }
{                                Internet: boylank@compuserve.com                    }
{                                                                                    }
{ ********************************************************************************** }

{ $Log:  D:\Util\GP-Version\Archives\Components\VCLZip\Component Files\kpBits.UFV 
{
{   Rev 1.1    7/9/98 6:47:17 PM  Supervisor
{ Version 2.13
{ 
{ 1) New property ResetArchiveBitOnZip causes each file's 
{ archive bit to be turned  off after being zipped.
{ 
{ 2) New Property SkipIfArchiveBitNotSet causes files 
{ who's archive bit is not set to be skipped during zipping 
{ operations.
{ 
{ 3) A few modifications were made to allow more 
{ compatibility with BCB 1.
{ 
{ 4) Modified how directory information is used when 
{ comparing filenames to be unzipped.  Now it is always 
{ used.
}

{$P-} { turn off open parameters }
{$Q-} { turn off overflow checking }
{$R-} { turn off range checking }
{$B-} { turn off complete boolean eval } { 12/24/98  2.17 }


{* ===========================================================================
 * Initialize the bit string routines. 
 *} 
procedure bi_init;
    {zipfile = output zip file, NULL for in-memory compression }
begin
    bi_buf := 0;
    bi_valid := 0;
{$IFOPT D+}
{$IFDEF KPDEBUG}
    bits_sent := 0;
{$ENDIF}
{$ENDIF}
    {* Set the defaults for file compression. They are set by memcompress
     * for in-memory compression.
     *}
    if (zfile <> nil) then
     begin
        out_buf := ByteArrayPtr(@file_outbuf[0]);  { added typecast 5/18/98  2.13 }
        out_size := SizeOf(file_outbuf);
        out_offset := 0;
        read_buf  := file_read;
     end;
end;

{* ===========================================================================
 * Reverse the first len bits of a code, using straightforward code (a faster
 * method would use a table)
 * IN assertion: 1 <= len <= 15
 *}
function bi_reverse(code: usigned; len: LongInt): usigned;
var
  { code    = the value to invert }
  { len     = its bit length }
  res: usigned;
begin
  res := 0;
  Repeat
     res := res or (code and 1);
     code := code shr 1;
     res := res shl 1;
     Dec(len);
  Until len = 0;
  Result := res shr 1;
end;

procedure flush_outbuf(w, bytes: usigned); forward;

{* Output a 16 bit value to the bit stream, lower (oldest) byte first *}
procedure PUTSHORT(w: WORD);
begin
  if (out_offset < out_size-1) then
   begin
    {out_buf^[out_offset] := w and $ff;}
    out_buf^[out_offset] := LOBYTE(w);
    Inc(out_offset);
    {out_buf^[out_offset] := w shr 8;}
    out_buf^[out_offset] := HIBYTE(w);
    Inc(out_offset);
   end
  Else
    flush_outbuf(w,2);
end;

procedure PUTBYTE(b: usigned);
begin
  if (out_offset < out_size) then
   begin
    out_buf^[out_offset] := LOBYTE(b);
    Inc(out_offset);
   end
  Else
    flush_outbuf(b,1);
end;

{* ===========================================================================
 * Send a value on a given number of bits.
 * IN assertion: length <= 16 and value fits in length bits.
 *}
procedure send_bits(value, blength: LongInt);
    { value   = value to send }
    { length  = number of bits }
begin
    {$IFDEF ASSERTS}
    Assert((blength > 0) and (blength <= 15), 'invalid length in send_bits');
    {$ENDIF}
    {$IFDEF KPDEBUG}
    Inc(bits_sent,blength);
    {$ENDIF}
    {* If not enough room in bi_buf, use (valid) bits from bi_buf and
     * (16 - bi_valid) bits from value, leaving (width - (16-bi_valid))
     * unused bits in value.
     *}
    if (bi_valid > Buf_size - blength) then
     begin
        bi_buf := bi_buf or (value shl bi_valid);
        PUTSHORT(bi_buf);
        bi_buf := WORD(value) shr (Buf_size - bi_valid);
        bi_valid := bi_valid + (blength - Buf_size);
     end
    Else
     begin
        bi_buf := bi_buf or (value shl bi_valid);
        Inc(bi_valid,blength);
     end;
end;

{* ===========================================================================
 * Flush the current output buffer.
 *}
procedure flush_outbuf(w, bytes: usigned);
    { w       = value to flush }
    { bytes   = number of bytes to flush (0, 1 or 2) }
begin
    if (zfile = nil) then
     begin
        {error("output buffer too small for in-memory compression");}
     end;

    { Encrypt and write the output buffer: }
    if (out_offset <> 0) then
     begin
        zfwrite(@out_buf^[0], 1, out_offset);
        {if (ferror(zfile)) error ("write error on zip file");}
     end;
    out_offset := 0;
    if (bytes = 2) then
        PUTSHORT(w)
    Else if (bytes = 1) then
     begin
        out_buf^[out_offset] := LOBYTE(w);
        Inc(out_offset);
     end;
end;

{* ===========================================================================
 * Write out any remaining bits in an incomplete byte.
 *}
procedure bi_windup;
begin
    if (bi_valid > 8) then
        PUTSHORT(bi_buf)
    Else if (bi_valid > 0) then
        PUTBYTE(bi_buf);
    if (zfile <> nil) then
        flush_outbuf(0, 0);

    bi_buf := 0;
    bi_valid := 0;
{$IFOPT D+}
{$IFDEF KPDEBUG}
    bits_sent := (bits_sent+7) and (not 7);
{$ENDIF}
{$ENDIF}
end;

{* ===========================================================================
 * Copy a stored block to the zip file, storing first the length and its
 * one's complement if requested.
 *}
procedure copy_block(block: BytePtr; len: usigned; header: Integer);
    { block      = the input data }
    { len        = its length }
    { header     = true if block header must be written }
begin
    bi_windup;              { align on byte boundary }

    if (header <> 0) then
     begin
        PUTSHORT(WORD(len));
        PUTSHORT(WORD(not len));
        {$IFOPT D+}
        {$IFDEF KPDEBUG}
        Inc(bits_sent,2*16);
        {$ENDIF}
        {$ENDIF}
     end;
    if (zfile <> nil) then
     begin
        flush_outbuf(0, 0);
        zfwrite(block, 1, len);
        {if (ferror(zfile)) error ("write error on zip file");}
     end
    Else if (out_offset + len > out_size) then
        {error("output buffer too small for in-memory compression");}
    Else
     begin
        MoveMemory(@out_buf^[out_offset], block, len);
        Inc(out_offset,len);
     end;
end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产99一区视频免费 | 欧美挠脚心视频网站| 国内精品伊人久久久久影院对白| 一区二区三区欧美日| 亚洲人成网站在线| 一区二区三区中文免费| 亚洲精品一二三| 亚洲综合色丁香婷婷六月图片| 中文字幕亚洲视频| 亚洲视频一二区| 亚洲午夜激情网站| 青青草国产精品97视觉盛宴| 五月天一区二区| 毛片av中文字幕一区二区| 人人精品人人爱| 精品在线免费视频| 国产成人超碰人人澡人人澡| 成人自拍视频在线观看| 91在线视频播放地址| 欧美体内she精视频| 91精品国产综合久久婷婷香蕉| 91麻豆精品国产| 亚洲免费av网站| 亚洲影院在线观看| 午夜精品久久久久久久久| 老色鬼精品视频在线观看播放| 精品一区二区三区香蕉蜜桃| 国产成人亚洲综合a∨婷婷图片| 成人高清伦理免费影院在线观看| 在线观看亚洲一区| 久久久久久久综合狠狠综合| 亚洲欧美在线另类| 丝袜美腿亚洲综合| 国产高清在线观看免费不卡| heyzo一本久久综合| 欧美日韩国产影片| 日本一区二区三区四区| 亚洲成a人v欧美综合天堂下载| 久久精品免费观看| 91福利社在线观看| 国产农村妇女精品| 日韩黄色片在线观看| 成人丝袜视频网| 日韩美女视频在线| 亚洲永久精品大片| 成熟亚洲日本毛茸茸凸凹| 欧美日韩精品电影| 国产精品成人免费精品自在线观看 | 欧美精品tushy高清| 欧美激情一区二区三区四区| 天天综合日日夜夜精品| www.性欧美| 久久综合九色综合97婷婷女人 | 在线精品视频免费播放| 久久天堂av综合合色蜜桃网| 亚洲靠逼com| 成人精品高清在线| 久久综合av免费| 日韩电影一二三区| 欧美日韩精品是欧美日韩精品| 国产精品丝袜久久久久久app| 日本不卡1234视频| 欧美日韩国产综合视频在线观看| 国产精品无遮挡| 国产老女人精品毛片久久| 日韩视频中午一区| 美女视频黄免费的久久| 欧美精品一级二级三级| 亚洲综合在线五月| 色狠狠一区二区三区香蕉| 国产精品欧美一区二区三区| 国产精品2024| 国产香蕉久久精品综合网| 精品一区免费av| 欧美成人a视频| 蜜桃一区二区三区在线观看| 5月丁香婷婷综合| 青娱乐精品在线视频| 91精品一区二区三区久久久久久| 一区二区激情视频| 在线观看视频一区二区| 亚洲午夜视频在线| 在线观看不卡一区| 亚洲高清中文字幕| 日韩欧美中文一区二区| 美国欧美日韩国产在线播放| 精品美女一区二区三区| 韩国精品主播一区二区在线观看| 欧美变态凌虐bdsm| 国产91丝袜在线播放| 国产精品乱码久久久久久| 99精品黄色片免费大全| 亚洲第一综合色| 欧美v国产在线一区二区三区| 美女网站色91| 亚洲国产高清不卡| 色婷婷综合久久久久中文一区二区 | 不卡av在线免费观看| 亚洲欧美激情视频在线观看一区二区三区 | 色嗨嗨av一区二区三区| 一区二区三区四区不卡视频| 欧美视频在线播放| 美女国产一区二区| 国产精品视频免费| 欧美色中文字幕| 激情国产一区二区| 成人欧美一区二区三区| 欧美男女性生活在线直播观看| 毛片不卡一区二区| 国产精品电影一区二区三区| 精品视频在线看| 国产一区二区精品久久| 亚洲欧美偷拍卡通变态| 欧美一区二区视频免费观看| 国产伦精一区二区三区| 亚洲欧美电影一区二区| 欧美精品乱码久久久久久按摩| 国产在线精品国自产拍免费| 亚洲天天做日日做天天谢日日欢| 欧美挠脚心视频网站| 成人一二三区视频| 日本强好片久久久久久aaa| 国产精品久久久久久久久久免费看| 在线免费观看日本欧美| 国产精品亚洲人在线观看| 亚洲男人天堂av| 国产欧美日韩在线观看| 制服丝袜日韩国产| 色婷婷综合久久久中文一区二区| 精品一区二区三区免费| 香港成人在线视频| 亚洲另类色综合网站| 国产婷婷色一区二区三区| 欧美电影免费提供在线观看| 久久久99精品久久| 欧美性一级生活| av一二三不卡影片| 国产永久精品大片wwwapp| 日韩精品一区第一页| 亚洲伊人伊色伊影伊综合网| 中文字幕欧美日韩一区| 国产亚洲1区2区3区| 欧美精品一区二区三区蜜桃视频| 欧美视频在线观看一区| 99精品国产视频| 99在线精品观看| 成人免费不卡视频| 懂色av一区二区三区免费看| 蜜桃视频在线观看一区| 免费视频最近日韩| 爽好久久久欧美精品| 亚洲成人久久影院| 亚洲.国产.中文慕字在线| 夜夜操天天操亚洲| 首页亚洲欧美制服丝腿| 日韩国产一二三区| 美女视频免费一区| 狠狠色狠狠色综合日日91app| 美女诱惑一区二区| 极品尤物av久久免费看| 极品销魂美女一区二区三区| 精品一区精品二区高清| 国产精品一二三区| 99国产精品久久久久久久久久| 成人av午夜影院| 91精品1区2区| 欧美美女一区二区| 日韩精品一区二区三区视频在线观看 | 亚洲综合久久av| 日韩一区欧美二区| 国产一二三精品| 99久久99久久免费精品蜜臀| 日本高清不卡视频| 欧美一区二区三区视频| 精品国产亚洲一区二区三区在线观看| 2017欧美狠狠色| 国产精品久久国产精麻豆99网站| 亚洲柠檬福利资源导航| 日本不卡123| 不卡区在线中文字幕| 欧美在线一区二区| 久久综合久久综合久久综合| 成人欧美一区二区三区白人| 午夜在线电影亚洲一区| 国产一区91精品张津瑜| 99久久综合精品| 欧美区一区二区三区| 国产亚洲精久久久久久| 亚洲午夜激情网页| 国产精品亚洲第一区在线暖暖韩国 | 一区二区三区四区激情| 久久国产剧场电影| 一本大道久久a久久综合| 69av一区二区三区| 亚洲免费色视频| 久久99精品网久久| 欧美性生活影院| 欧美激情一区二区| 日本不卡视频在线| 在线观看视频欧美|