File:  [Local Repository] / processmail / collection.pl
Revision 3.1: download - view: text, annotated - select for diffs - revision graph
Mon Mar 24 16:01:47 2008 UTC (16 years, 3 months ago) by boris
Branches: MAIN
CVS tags: HEAD
New version from Lev

    1: #!/usr/local/bin/perl
    2: #
    3: #$Id: collection.pl,v 3.1 2008/03/24 16:01:47 boris Exp $
    4: #
    5: # Собрание сочинений
    6: #
    7:     use Getopt::Std; 
    8: 
    9: $usage = 
   10: "Usage: collection.pl [-d] [-t table_file]  [-o results] \n";
   11: 
   12: require 'parameters.pl';
   13: require 'subroutines.pl';
   14: 
   15: die $usage unless getopts('t:o:d');
   16: 
   17: $DEBUG=$opt_d;
   18: 
   19: # Находим максимальный вопрос
   20: $MAXQUEST=1;
   21: for (my $i=1; $i<=$ROUNDS; $i++) {
   22:     if ($MAXQUEST<$MAXQUEST[$i]) {
   23: 	$MAXQUEST=$MAXQUEST[$i];
   24:     }
   25: }
   26: 
   27: 
   28: 
   29: my %teams;
   30: my @answers;
   31: #
   32: # Читаем старые результаты
   33: #
   34: if ($opt_t)
   35: {
   36:     die "Cannot open $opt_t\n" unless open(INFILE,$opt_t);
   37:     readhash(\@answers);
   38:     close(INFILE);
   39: }
   40: 
   41: #
   42: # Читаем ответы команд
   43: #
   44: for (my $i=1; $i<=$ROUNDS; $i++) {
   45:     foreach my $file ( @{$FILES[$i]} ) {
   46: 	open (INFILE, $file);
   47: 	readmail(\%teams);
   48: 	collect_answers(\%teams,\@answers);
   49: 	close (INFILE);
   50:     }
   51: }
   52: 
   53: #
   54: # Пишем измененную таблицу в файл.
   55: #
   56: if ($opt_o)
   57: { 
   58:     die "Cannot open $opt_o\n" unless open(OUTFILE,">$opt_o");
   59:     select OUTFILE;
   60: }
   61: for ($i=1;$i<=$MAXQUEST;$i++)
   62: {
   63:     print "\nВОПРОС $i:\n";
   64:     print "\nЗАСЧИТАНО:\n";
   65:     anondump(\%teams,\@answers,$i,'+');
   66:     print "\nНЕ ЗАСЧИТАНО:\n";
   67:     anondump(\%teams,\@answers,$i,'-');
   68:     print "\nНЕ ЯСНО:\n";
   69:     anondump(\%teams,\@answers,$i,'?');
   70: }
   71: print "***\n";
   72: 
   73: #
   74: # На всякий случай проверяем на наличие команд с дублирующимися номерами.
   75: #
   76: check_dup_numbers(\%teams);
   77: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>