Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Vlad                                 2:5020/400     26 Feb 2001  20:41:23
 To : All
 Subject : время выполнения подпрограммы
 -------------------------------------------------------------------------------- 
 
 Hello All,
 
 Hе подскажет ли кто, как определить subj?
 Ситуация следующая: имеется программа на Perl/Tk, которая отправляет
 e-mail, во время отправки выскакивает окошко с прогресс-баром и показывает,
 как проходит процесс отправки (ну как в The Bat). Окну этому нужно
 знать только одну переменную, значение которой должно постепенно
 увеличиваться. Брать значение, я полагаю, нужно или из количества
 передаваемых байт (используется NET::SMTP) или времени выполнения
 подпрограммы. И в первом, и во втором случае возникает вопрос: как?
 Может быть я не в ту сторону думаю? Помогите разобраться.
 Вот приблизительный код:
 
 #!/usr/bin/perl
 
 use Tk;
 use Tk::Balloon;
 use Tk::ProgressBar;
 use Net::SMTP;
 
 my $w_main = MainWindow->new( -height => 169, -width => 205);
 $w_main->title('Почтовая программа');
 my $mail = $w_main->Entry( -relief => "sunken", -background => "#00FF80",
 -justify => "center");
 
 $mail->place( -x => 95, -y => 30, -height => 20, -width => 106);
 
 my $message = $w_main->Text( -background => "#00FF80");
 $message->place( -x => 3, -y => 54, -height => 84, -width => 198);
 my $send_but = $w_main->Button( -text => "Послать сообщение", -relief =>
 "raised",
 -activebackground => "#FFFF80", -command => \&sendmessage);
 $send_but->place( -x => 3, -y => 143, -height => 21, -width => 170);
 $w_main->geometry('205x169');
 MainLoop;
 
 sub sendmessage{
 
 my $percent;
 
 # Здесь, судя по всему, и нужно каким-то образом
 # инкрементировать переменную до 100
 ######################################
 
 &progress ($percent);
 
 my $body = $message -> get("1.0", "end");
 my $addres = $mail -> get();
 my $mailhost="smtp.host";
 my $recipient="$addres";
 my $sender="your\@mail.com";
 my $smtp = Net::SMTP->new("$mailhost");
 
 $smtp->mail("$sender");
 $smtp->to("$recipient");
 $smtp->data();
 $smtp->datasend("To: $recipient");
 $smtp->datasend("\n");
 $smtp->datasend("$body\n");
 $smtp->dataend();
 $smtp->quit;
 
 }
 
 sub progress {
 my ($percent_done)=@_;
 my $w_progress = $w_main->Toplevel( -height => 20, -width => 200);
 $w_progress->title('Идет отправка...');
 my $progress = $w_progress->ProgressBar(-width => 200,
 -height => 20, -from => 0, -to => 100, -blocks => 10,
 -colors => [0, 'green', 50, 'yellow' , 80, 'red'],
 -variable => \$percent_done);
 $progress->place( -x => 0, -y => 0, -height => 20, -width => 200);
 $w_progress->geometry('200x20');
 $w_progress->focus;
 }
 -- 
 Best regards,
 VLAD                          
 mailto:vlad@niko.kiev.ua
 Отправлено через сервер Talk.Ru - http://www.talk.ru
 --- ifmail v.2.15dev5
  * Origin: NIKO (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 время выполнения подпрограммы   Vlad   26 Feb 2001 20:41:23 
Архивное /ru.perl/648844f5f44b.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional