/[bfilter]/trunk/bfilter.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /trunk/bfilter.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4 - (hide annotations)
Tue Sep 7 09:16:06 2004 UTC (19 years, 7 months ago) by dpavlin
File MIME type: text/plain
File size: 1432 byte(s)
suggest increasing min_len if needed

1 dpavlin 1 #!/usr/bin/perl -w
2     #
3    
4     use strict;
5     use locale;
6    
7     # maximum entries
8     my $max = 0;
9     # minimum letters to search by
10 dpavlin 4 my $min_len = 2;
11     # if more than x elements, warn to increase min_len
12     my $increase_at = 500;
13 dpavlin 1
14 dpavlin 3 my $debug = 1;
15    
16 dpavlin 1 sub print_file {
17     my $f = shift || return;
18     open(F, $f) || die "$f: $!";
19     while(<F>) {
20     print;
21     }
22     close(F);
23     }
24    
25     print qq{
26     var headlines = Array();
27     };
28    
29     my @part_arr;
30     my $last_part = '';
31     my $total = 0;
32    
33 dpavlin 4 my $max_elements = 0;
34    
35 dpavlin 1 while(<STDIN>) {
36     chomp;
37    
38     # escape single quote
39     s/'/\\'/g;
40    
41     # split into min_len part and rest
42     my ($part,$rest) = ( substr($_,0,$min_len), substr($_,$min_len) );
43    
44     # make part lowercase
45     $part = lc($part);
46    
47     $last_part = $part if (! $last_part);
48    
49     # new part?
50     if ($part ne $last_part) {
51 dpavlin 3 print STDERR $last_part,"\t",$#part_arr+1,"\n" if ($debug);
52 dpavlin 4 $max_elements = $#part_arr if ($#part_arr > $max_elements);
53 dpavlin 1 print "headlines['$last_part'] = Array(\n ",join(",\n ",@part_arr),");\n" if (@part_arr);
54     $total += $#part_arr;
55     @part_arr = ();
56     $last_part = $part;
57     }
58     push @part_arr, "'$_'";
59    
60     # break out?
61     last if ($max && $total > $max);
62     }
63    
64     print "headlines['$last_part'] = Array(\n ",join(",\n ",@part_arr),");\n" if (@part_arr);
65     print "var min_len = $min_len;\n";
66     print "// index elements: $total\n";
67 dpavlin 4
68     print STDERR "You have more than $increase_at elements in one array,\nyou whould probably increase min_len to ",$min_len+1," or higher.\n" if ($max_elements > $increase_at);

Properties

Name Value
svn:executable

  ViewVC Help
Powered by ViewVC 1.1.26