Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Возможно ли просуммировать числа из файла?


Автор: ПапаМишка 21.8.2008, 14:43
Бухгалтер моя мечтает об одной программке...
есть файлик с кучей информации, оттуда я вытаскиваю строки в которых прописана комиссия,
вот скриптик

Код

$div = "-----------------------------------------------------\n";
foreach $file (<pr*.txt>) {
  open(MYFILE, $file)||die;
  @star=<MYFILE>;
  close(MYFILE);
  
  @nado= grep {m/Комиссия:/} @star;
  
  ($out_file = $file) =~ s/txt$/out/;
  open(NFILE, ">$out_file")||die;
  print NFILE @nado;
  close(NFILE); 
}

в итоге получается файл со следующим содержанием
Код

Комиссия:                   2.39
Комиссия:                   2.39
Комиссия:                   0.96
Комиссия:                  23.81
Комиссия:                   4.77
Комиссия:                   2.39
Комиссия:                   2.39
Комиссия:                   4.77
Комиссия:                   2.39
Комиссия:                   2.39
Комиссия:                   2.39


возможно ли сделать что бы была в конце файла была строчка в которой была бы прописана сумма всех цифр?

Автор: ginnie 21.8.2008, 14:57
Уважаемый ПапаМишка, предлагаю свой вариант

Код

open(NFILE, ">$out_file")||die;
my $sum = 0;
my $value;
for my $line (@nado) {
    print NFILE $line;
    (undef, $value) = split(/\s+/, $line);
    $sum += $value;
}
print NFILE "Сумма комиссий: $sum\n";
close(NFILE);


Автор: ПапаМишка 21.8.2008, 15:07
ginnie,

Огромное спасибо за оперативность,

к сожалению не работает почему то =(

или я что то не так делаю?

Добавлено через 3 минуты и 10 секунд
ой, уже после Вашей редакции РАБОТАЕТ!!! спасибо!

Автор: ginnie 21.8.2008, 15:13
Что именно не работает? Ошибки есть?

Автор: ПапаМишка 21.8.2008, 15:23
всё работает!

Бухгалтерша обещала поцеловать  smile 


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)