Diff for /processmail/collection.pl between versions 3.0 and 3.3

version 3.0, 2008/03/23 17:50:49 version 3.3, 2013/10/30 19:28:30
Line 1 Line 1
 #!/usr/local/bin/perl  #!/usr/bin/perl
 #  #
 #$Id$  #$Id$
 #  #
 # Собрание сочинений  # Собрание сочинений
 #  #
     use Getopt::Std;   
   use Getopt::Std; 
   
 $usage =   $usage = 
 "Usage: collection.pl [-d] [-t table_file]  [-o results] \n";  "Usage: collection.pl [-d] [-s|-m] [-t table_file]  [-o results] \n";
   
 require 'parameters.pl';  require 'parameters.pl';
 require 'subroutines.pl';  require 'subroutines.pl';
   
 die $usage unless getopts('t:o:d');  die $usage unless getopts('t:o:dsm');
   
 $DEBUG=$opt_d;  $DEBUG=$opt_d;
   $SHORT=$opt_s;
   $MEDIUM=$opt_m;
   
 # Находим максимальный вопрос  # Находим максимальный и минимальный вопрос и слегка подстраховываемся.
 $MAXQUEST=1;  $MINQUEST=1e99;
 for (my $i=1; $i<=$ROUNDS; $i++) {  $MAXQUEST=-1;
     if ($MAXQUEST<$MAXQUEST[$i]) {  for (my $r=1; $r<=$ROUNDS; $r++) {
         $MAXQUEST=$MAXQUEST[$i];      if ($MINQUEST>$MINQUEST[$r]) {
           $MINQUEST=$MINQUEST[$r];
       }
       if ($MAXQUEST<$MAXQUEST[$r]) {
           $MAXQUEST=$MAXQUEST[$r];
     }      }
 }  }
   if ($MINQUEST < 0 || $MAXQUEST < 0) {
      die "Отрицательные номера вопросов не поддерживаются!\n";
   }
   
 my %teams;  my %teams;
 my @answers;  my @answers;
Line 41  if ($opt_t) Line 49  if ($opt_t)
 #  #
 # Читаем ответы команд  # Читаем ответы команд
 #  #
 for (my $i=1; $i<=$ROUNDS; $i++) {  for (my $r=1; $r<=$ROUNDS; $r++) {
     foreach my $file (split /\s+/, $FILES[$i]) {      foreach my $file ( @{$FILES[$r]} ) {
         open (INFILE, $file);          open (INFILE, $file);
         readmail(\%teams);          readmail(\%teams);
         collect_answers(\%teams,\@answers);          collect_answers(\%teams,\@answers);
Line 50  for (my $i=1; $i<=$ROUNDS; $i++) { Line 58  for (my $i=1; $i<=$ROUNDS; $i++) {
     }      }
 }  }
   
   #
 # Пишем измененную таблицу в файл.  # Пишем измененную таблицу в файл.
 #  #
 if ($opt_o)  if ($opt_o)
Line 57  if ($opt_o) Line 66  if ($opt_o)
     die "Cannot open $opt_o\n" unless open(OUTFILE,">$opt_o");      die "Cannot open $opt_o\n" unless open(OUTFILE,">$opt_o");
     select OUTFILE;      select OUTFILE;
 }  }
 for ($i=1;$i<=$MAXQUEST;$i++)  for ($i=$MINQUEST;$i<=$MAXQUEST;$i++)
 {  {
     print "\nВОПРОС $i:\n";      print "\nВОПРОС $i:\n";
     print "\nЗАСЧИТАНО:\n";      if ( ! $SHORT || countanswers(\%teams,\@answers,$i,'+') ) {
     anondump(\%teams,\@answers,$i,'+');          print "\nЗАСЧИТАНО:\n";
     print "\nНЕ ЗАСЧИТАНО:\n";          anondump(\%teams,\@answers,$i,'+');
     anondump(\%teams,\@answers,$i,'-');      }
     print "\nНЕ ЯСНО:\n";      if ( ! $SHORT || countanswers(\%teams,\@answers,$i,'+') ) {
     anondump(\%teams,\@answers,$i,'?');          print "\nНЕ ЗАСЧИТАНО:\n";
           anondump(\%teams,\@answers,$i,'-');
       }
       if ( ! ($SHORT || $MEDIUM) || countanswers(\%teams,\@answers,$i,'?') ) {
           print "\nНЕ ЯСНО:\n";
           anondump(\%teams,\@answers,$i,'?');
       }
       print "\n";                         # Added by LG for better readability
 }  }
 print "***\n";  print "***\n";
   
   #
   # На всякий случай проверяем на наличие команд с дублирующимися номерами.
   #
   check_dup_numbers(\%teams);
   
   

Removed from v.3.0  
changed lines
  Added in v.3.3


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