Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 位取りのカンマ



<20020925.201318.74730696.nobu@xxxxxxxxx>の記事において
nobu@xxxxxxxxxさんは書きました。

>> 『現在、...  の文書がインデックス化され、... 個のキーワードが登録され
>> ています。』という文の数字の位取りのカンマが、打たれているときとそうで
>> ないときがあるようです。

  pl/nmzidx.pl で書換えられるとそうなるようです。こんなパッチでどうで
しょうか。
-- 
野首 貴嗣
E-mail: knok@xxxxxxxxxxxxx
	knok@xxxxxxxxxx / knok@xxxxxxxxxx

Index: nmzidx.pl
===================================================================
RCS file: /storage/cvsroot/namazu/pl/nmzidx.pl,v
retrieving revision 1.13
diff -u -r1.13 nmzidx.pl
--- nmzidx.pl   10 Jan 2001 16:59:45 -0000      1.13
+++ nmzidx.pl   7 Oct 2002 07:09:50 -0000
@@ -637,10 +637,10 @@
     my $in = shift;
 
     my $key = undef;
-    $key = $self->{'word'}->{'size'} if defined $self->{'word'};
+    $key = comma($self->{'word'}->{'size'}) if defined $self->{'word'};
 
     my $file = undef;
-    $file = $self->{'flist'}->{'valid'} if defined $self->{'flist'};
+    $file = comma($self->{'flist'}->{'valid'}) if defined $self->{'flist'};
 
     if ($self->{'mode'} =~ /w/i){
         my $fi = &nmzlib::open_db($in, 'status');
@@ -700,5 +700,16 @@
         $self->{'log'}->print("\n");
         $self->{'log'}->close;
     }
+}
+
+# copy from util.pl
+sub commas ($) {
+    my ($num) = @_;
+
+    $num = "0" if ($num eq "");
+#    1 while $num =~ s/(.*\d)(\d\d\d)/$1,$2/;
+    # from Mastering Regular Expressions
+    $num =~ s<\G((?:^-)?\d{1,3})(?=(?:\d\d\d)+(?!\d))><$1,>g;
+    $num;
 }
 1;