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