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

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

?? nmzidx.pl

?? namazu. 雖然是日語的,也適用于文件中單詞索引后全文檢索.
?? PL
?? 第 1 頁 / 共 2 頁
字號:
## -*- Perl -*-# nmzidx.pl - subroutines for accessing Namazu index files (NMZ.*)#         by furukawa@tcp-ip.or.jp## $Id: nmzidx.pl,v 1.13 2001/01/10 16:59:45 furukawa Exp $##  This program is free software; you can redistribute it and/or modify#  it under the terms of the GNU General Public License as published by#  the Free Software Foundation; either versions 2, or (at your option)#  any later version.# #  This program is distributed in the hope that it will be useful#  but WITHOUT ANY WARRANTY; without even the implied warranty of#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the#  GNU General Public License for more details.##  You should have received a copy of the GNU General Public License#  along with this program; if not, write to the Free Software#  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA#  02111-1307, USA#use strict;use IO::File;use DirHandle;package nmzlib;sub open_db{    my $par = shift;    my $ext = shift;    my $path = $par->{'dir'} . "/NMZ.$ext";    my $fh;    if ($par->{'mode'} =~ /w/i){        $fh = new IO::File "$path.$$.tmp", "w";    }else{        $fh = new IO::File $path, "r";    }    $par->{'dblist'}->{$path} = $fh, binmode $fh if defined $fh;    return $fh;}sub readw{    my $fh = shift;    my $ret = '';    my $c;    while (read($fh, $c, 1)){        $ret .= $c;        last unless 0x80 & ord $c;    }    unpack('w', $ret);}package nmzfile;sub new{    my $class = shift;    my $self = {};    bless $self, $class;    my $par = shift;    my $ext = shift;    my $fhb = &nmzlib::open_db($par, $ext);    $self->{'dir'} = $par->{'dir'};    $self->{'mode'} = $par->{'mode'};    $self->{'body'} = $fhb if defined $fhb;    $self->{'ext'} = $ext;    $ext .= ($ext =~ /^field/)? '.i': 'i';    my $fhi = &nmzlib::open_db($par, $ext);    $self->{'index'} = $fhi if defined $fhi;    $self->{'offset'} = 0;    if (defined($self->{'index'})){        $self->{'size'} = (-s $self->{'index'}) / length(pack('N', 0));    }    return $self;}sub close{    my $self = shift;    $self->{'body'}->close;    $self->{'index'}->close if defined $self->{'index'};}sub seek{    my $self = shift;    my $offset = @_? shift: 0;    my $whence = @_? shift: 0;    if ($whence == 1){        $offset += $self->{'offset'};    }elsif ($whence == 2){        $offset += $self->{'size'};    }    return $offset if $offset == $self->{'offset'};    return -1 if ($offset < 0 || $offset > $self->{'size'});    $self->{'offset'} = $offset;    $self->{'index'}->seek($offset * length(pack('N', 0)), 0);    if ($self->{'ext'} ne 'p'){        if ($offset == $self->{'size'}){            $self->{'body'}->seek(0, 2);        }else{            my $buf;            $self->{'index'}->read($buf, length pack('N', 0));            $self->{'body'}->seek(unpack('N', $buf), 0);        }    }    return $offset;}sub getline{    my $self = shift;    return undef unless defined $self->{'body'};    ++$self->{'offset'};    return $self->{'body'}->getline;}sub getlist{    my $self = shift;    return undef unless defined $self->{'body'};    return undef if $self->{'offset'} >= $self->{'size'};    if ($self->{'offset'} == $self->{'size'}){        return ();    }    ++$self->{'offset'};    if ($self->{'ext'} eq 'p'){        my $buf;        $self->{'index'}->read($buf, length pack('N', 0));        return () if $buf eq pack('N', -1);        $self->{'body'}->seek(unpack('N', $buf), 0);    }    $self->{'body'}->read(my $buf, &nmzlib::readw($self->{'body'}));    return unpack('w*', $buf);}sub putline{    my $self = shift;    if (@_){        $self->{'index'}->print(pack('N', $self->{'body'}->tell));        $self->{'body'}->print(shift);        ++$self->{'size'};        ++$self->{'offset'};    }}sub putlist{    my $self = shift;    if (@_){        $self->{'index'}->print(pack('N', $self->{'body'}->tell));        my $tmp = pack('w*', @_);        $self->{'body'}->print(pack('w', length $tmp) . $tmp);    }elsif ($self->{'ext'} eq 'p'){        $self->{'index'}->print(pack('N', -1));        ++$self->{'size'};        ++$self->{'offset'};    }}package nmzfield;sub new{    my $class = shift;    my $self = {};    bless $self, $class;    $self->open(@_) if @_;    return $self;}sub open{    my $self = shift;    my $par = shift;    my $ext = shift;    $self->{$ext} = new nmzfile($par, "field." . $ext);}sub open_all{    my $self = shift;    my $par = shift;    my $dh = new DirHandle($par->{'dir'});    while (defined(my $ent = $dh->read)){        if ($ent =~ /^NMZ\.field\.([^\.]+)$/){            $self->{$1} = new nmzfile($par, "field." . $1);        }    }    $dh->close;}sub close{    my $self = shift;    for my $key (keys %$self){        $self->{$key}->close;    }}sub seek{    my $self = shift;    $self->seek(@_);}package nmzflist;sub new{    my $class = shift;    my $self = {};    my $par = shift;    bless $self, $class;    $self->{'dir'} = $par->{'dir'};    $self->{'mode'} = $par->{'mode'};    $self->{'t'} = &nmzlib::open_db($par, 't');    $self->{'r'} = &nmzlib::open_db($par, 'r') unless $par->{'mode'} =~ /s/i;    $self->{'field'} = new nmzfield;    $self->{'field'}->open_all($par);    $self->{'offset'} = 0;    $self->{'size'} = (-s $self->{'t'}) / length(pack('N', 0));    $self->{'valid'} = $self->{'size'};    return $self;}sub close{    my $self = shift;    $self->{'t'}->close;    $self->{'r'}->close if defined $self->{'r'};    $self->{'field'}->close;}sub read{    my $self = shift;    my $list = shift;    %$list = ();    my $fh = $self->{'t'};    $fh->read(my $pindex, length pack('N', 0));    $list->{'t'} = ($pindex eq pack('N', -1))? -1: unpack('N', $pindex);    if (defined(my $fh = $self->{'r'})){        $list->{'r'} = $fh->getline;        $list->{'r'} = $fh->getline while (defined($list->{'r'}) && $list->{'r'} =~ /^[\#\r\n]/);        chomp $list->{'r'} if defined $list->{'r'};    }    my $field = $self->{'field'};    for my $key (keys %$field){        $fh = $field->{$key};        my $line = $fh->getline;        $line = '' unless defined $line;        chomp $line;        $list->{'field'}->{$key} = $line;    }    --$self->{'valid'} if defined($list->{'t'}) && $list->{'t'} == -1;    ++$self->{'offset'};    return $list->{'t'}}sub write{    my $self = shift;    my $list = shift;    my $fh = $self->{'t'};    $fh->print(pack('N', $list->{'t'}));    $fh = $self->{'r'};    $fh->print($list->{'r'} . "\n");    my $field = $self->{'field'};    for my $key (keys %$field){        $field->{$key}->putline($list->{'field'}->{$key} . "\n")    }    ++$self->{'valid'} if $list->{'t'} != -1;    ++$self->{'size'};    ++$self->{'offset'};}sub seek{    my $self = shift;    my $offset = @_? shift: 0;    my $whence = @_? shift: 0;    $self->{'t'}->seek($offset * length pack('N', 0), $whence);    my $field = $self->{'field'};    for my $key (keys %$field){        $field->{$key}->seek($offset, $whence);    }    if ($whence == 0){        $self->{'offset'} = $offset;    }elsif ($whence == 1){        $self->{'offset'} += $offset;    }elsif ($whence == 2){        $self->{'offset'} = $offset + $self->{'size'};    }    return $self->{'offset'};}package nmzword;sub new{    my $class = shift;    my $par = shift;    my $self = {};    bless $self, $class;    $self->{'dir'} = $par->{'dir'};    $self->{'mode'} = $par->{'mode'};    $self->{'i'} = new nmzfile($par, 'i');    $self->{'w'} = new nmzfile($par, 'w');    $self->{'offset'} = 0;    $self->{'size'} = $self->{'i'}->{'size'};    return $self;}sub close{    my $self = shift;    $self->{'i'}->close;    $self->{'w'}->close;}sub read{    my $self = shift;    my $word = shift;    my $list = shift;    %$list = ();    return unless defined($$word = $self->{'w'}->getline);    chomp $$word;    my $key = 0;    my @tmp = $self->{'i'}->getlist;    $key += shift @tmp, $list->{$key} = shift @tmp while @tmp;    ++$self->{'offset'};    return $$word;}sub write{    my $self = shift;    my $word = shift;    my $list = shift;    if (length $word and scalar keys %$list){        $self->{'w'}->putline($word . "\n");        my @tmp = ();        my $ndx = 0;        for my $key (sort {$a <=> $b} keys %$list){            push(@tmp, $key - $ndx);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天天色综合成人网| 亚洲v日本v欧美v久久精品| 91精品中文字幕一区二区三区 | 欧美日韩黄色一区二区| 在线视频观看一区| 91丨九色丨蝌蚪富婆spa| 99久久久无码国产精品| 色激情天天射综合网| 成人精品国产福利| 色视频欧美一区二区三区| 美国av一区二区| 久久精品国产精品亚洲精品| 日本免费新一区视频| 激情综合色综合久久综合| 国产原创一区二区三区| 成人黄色777网| 色婷婷亚洲综合| 欧美夫妻性生活| 欧美大肚乱孕交hd孕妇| 国产无一区二区| 一区二区三区在线看| 日韩国产在线观看一区| 国产精品一区二区男女羞羞无遮挡| 国产精一区二区三区| 色香色香欲天天天影视综合网| 欧美系列在线观看| 精品少妇一区二区三区| 国产欧美日产一区| 亚洲不卡在线观看| 国产91精品免费| 在线观看视频一区二区| 久久久亚洲精品一区二区三区| 国产日韩成人精品| 亚洲国产成人精品视频| 国产精品一区二区91| 在线免费视频一区二区| 久久精品视频一区二区| 亚洲1区2区3区4区| 成人免费观看av| 4438x成人网最大色成网站| 国产日产欧美一区| 秋霞影院一区二区| 色婷婷香蕉在线一区二区| 精品国产制服丝袜高跟| 亚洲国产日日夜夜| 成人动漫在线一区| 日韩欧美一区在线观看| 亚洲精品免费在线| 国产精品1区2区3区| 欧美一区二区三区视频在线观看 | 狠狠色丁香婷综合久久| 99久久婷婷国产| 国产色一区二区| 日本美女视频一区二区| 91天堂素人约啪| 国产婷婷色一区二区三区| 日本va欧美va瓶| 欧美日韩一区二区三区高清 | 日韩高清电影一区| 日本道免费精品一区二区三区| 久久久久久免费毛片精品| 日本成人超碰在线观看| 欧美精选午夜久久久乱码6080| 一区二区三区在线高清| av成人老司机| 国产精品福利影院| 国产.精品.日韩.另类.中文.在线.播放| 欧美一级欧美三级| 日韩电影在线免费看| 欧美日韩大陆一区二区| 亚洲国产欧美在线| 欧美日韩亚洲综合在线| 一区二区三区国产精华| 日本国产一区二区| 亚洲人成影院在线观看| 91香蕉视频黄| 亚洲影院免费观看| 69堂精品视频| 久久不见久久见免费视频7 | 91麻豆国产精品久久| 国产精品传媒视频| 色婷婷激情综合| 亚洲成a天堂v人片| 日韩精品一区二区三区视频播放 | 亚洲免费毛片网站| 在线视频一区二区三| 亚洲午夜久久久久中文字幕久| 欧美偷拍一区二区| 青青草97国产精品免费观看无弹窗版| 欧美老女人在线| 久久国产综合精品| 国产精品久久久久aaaa| 在线亚洲人成电影网站色www| 一区二区三区欧美| 欧美一区二区三区成人| 国产麻豆午夜三级精品| 中文字幕一区二区三中文字幕| 色婷婷精品大视频在线蜜桃视频| 亚洲国产精品久久久久婷婷884 | 亚洲国产精品麻豆| xfplay精品久久| 91丨九色丨尤物| 麻豆91精品视频| 国产精品乱码人人做人人爱 | 欧美日韩国产影片| 国产自产v一区二区三区c| 1024精品合集| 欧美一级一区二区| av一二三不卡影片| 青青国产91久久久久久| 中文字幕中文在线不卡住| 欧美人狂配大交3d怪物一区| 国产乱子伦视频一区二区三区 | 欧美中文字幕不卡| 久久97超碰色| 亚洲综合另类小说| 国产亚洲成aⅴ人片在线观看| 91在线视频免费91| 国精产品一区一区三区mba视频| 中文字幕日韩一区二区| 日韩午夜在线影院| 日本久久一区二区三区| 国模一区二区三区白浆| 亚洲h精品动漫在线观看| 国产精品护士白丝一区av| 日韩一区二区精品在线观看| 91国产福利在线| 成人精品免费看| 国产在线视频一区二区三区| 调教+趴+乳夹+国产+精品| 日韩一区在线看| 国产日产欧美一区二区三区| 日韩女优制服丝袜电影| 欧美日韩色一区| 91九色最新地址| 成人白浆超碰人人人人| 国产一区美女在线| 久久国产欧美日韩精品| 免费视频一区二区| 丝袜诱惑亚洲看片| 天天亚洲美女在线视频| 亚洲成va人在线观看| 亚洲一区二区精品视频| 一区二区三区四区五区视频在线观看| 亚洲国产精品成人综合色在线婷婷| 日韩欧美综合在线| 日韩欧美成人激情| 久久夜色精品国产欧美乱极品| 欧美成人猛片aaaaaaa| 欧美一级黄色大片| 欧美不卡123| 亚洲精品在线免费播放| 精品国产乱码久久久久久久久| 日韩视频一区在线观看| 91精品国产一区二区人妖| 欧美一区二区三区电影| 欧美成人女星排名| 久久精品一区二区三区av| 国产欧美日本一区视频| 亚洲国产成人在线| 一卡二卡欧美日韩| 日本vs亚洲vs韩国一区三区二区 | 国产精品午夜在线| 亚洲欧美另类久久久精品| 亚洲精品久久久蜜桃| 一区二区三区中文在线观看| 亚洲高清在线视频| 久久精品99国产国产精| 国产成人精品亚洲777人妖| 91偷拍与自偷拍精品| 欧美人伦禁忌dvd放荡欲情| 日韩欧美一区二区在线视频| 精品久久国产字幕高潮| 国产欧美一区二区精品性色| 亚洲欧美国产三级| 青青草国产精品97视觉盛宴| 国产精品一区二区在线播放 | 9人人澡人人爽人人精品| 欧美亚洲愉拍一区二区| 欧美一区二区三区播放老司机| 久久奇米777| 亚洲另类春色国产| 理论电影国产精品| 99综合影院在线| 777奇米成人网| 日本一区二区综合亚洲| 亚洲电影欧美电影有声小说| 激情综合五月天| 在线观看成人小视频| 久久尤物电影视频在线观看| 一区二区不卡在线视频 午夜欧美不卡在| 日精品一区二区| 99免费精品视频| 欧美一级二级三级蜜桃| 一区二区在线观看不卡| 国产乱码精品一品二品| 欧美日韩精品欧美日韩精品一 | eeuss鲁一区二区三区| 91精品免费在线| 亚洲色图20p|