Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> разность значений на html форме 
:(
    Опции темы
Ivannet
Дата 8.2.2008, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 8.2.2008

Репутация: нет
Всего: нет



Здравствуйте!

Формирую два html файла следующим образом:
Код

$file1 = "f1.html";
$file2 = "f2.html";

CreateFile($file1);
CreateFile($file2);

sub CreateFile
{
       open(RESULT, ">$_[0]" ) or die "Cannot write $_[0]: $!\n";

        print ( RESULT $head );
        print ( RESULT "<table width=\"50%\" border=0 cellspacing=2>\n");
        print ( RESULT "<tr><td bgcolor=#a1c4f1> Packages </td> <td>  $NPM  </td></tr>\n" );
        print ( RESULT "</table>" );
        print ( RESULT $end);

    close (RESULT) or die "Can\'t close writerfile. $!\n";
}


Содержимое этих файлов примерно такое:
f1.html
Packages  25

f2.html
Packages  13

Подскажите пожалуйста, возможно ли сформировать файл, в котором будет содержаться разница между значениями Packages исходных файлов f1.html и f2.html?
То есть, содержимым файла f3.html  будет следущее: Packages 8

Есть блок, который принимает два тестовых файлов(формата txt) с тем же содержимым и считает разницу, но с файлами формата html эта функция не работает.
Код

sub CountDelta
{
    my ( $file1, $file2 ) = @_;
    my $name;
    my $value;
    my $f;
    my %tov;
    my $temp;

    open FILE1, "<$file1" or die "Can't open $file1: $!\n";

    while ( <FILE1> )
    {
        next unless length;
        ($name, $value) = split;
        $tov{$name}     = $value;
    }

        close FILE1 or die "Can't close file $file1. $!\n ";

    open FILE2,  "<$file2"          or die "Can't open $file2: $!\n";
    open RESULT, ">resultDelta.txt" or die "Can't open resultDelta.txt: $!\n";

    while ( <FILE2>  )
    {
        next unless length;
        ($name, $value) = split;
        next unless defined $tov{$name};

        my $delta = abs $tov{$name} - $value;

        printf RESULT "%s %i\n", $name, $delta;
    }
    close FILE2 or die "Can't close file $file2. $!\n ";
    close RESULT or die "Can't close file result.txt. $!\n ";
}

PM MAIL   Вверх
nitr
Дата 9.2.2008, 01:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Конечно не работает. Продумайте как верно получить ваши данные, "убрав" всё лишнее, а точнее html-теги.
Как вариант, вместо вашего

Код
($name, $value) = split;

записать
Код
($name, $value) = ($_ =~ /(Packages).+?(\d+)/);



--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0435 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.