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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хочу сделать шкалу прогресса, причем две 
:(
    Опции темы
apook
Дата 1.10.2007, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Хочу сделать текстовую "прогресс" шкалу закачки файлов. 
Цитата

 |***********----------------------------| 

причем одна прогресс количества файлов, вторая прогресс для каждого файла
Задача: Определить количество файлов(для первой шкалы)
              Определять размер каждого файла, его закачка(непонятно как чтоб отображать в прогрессе) 
Реализовать сам вывод( c этим проще ).

Ваши предложения. smile


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
fray
Дата 1.10.2007, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Use Curses; #!!!! use Curses::UI; крутая вещб но под unix
PM MAIL   Вверх
shamber
Дата 2.10.2007, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

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



fray, под win тоже есть, правда слегка урезаный smile Хотя если самому компилить, может и собереться smile
PM MAIL Jabber   Вверх
KSURi
Дата 10.10.2007, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я не совсем понял: как файл закачивается? Топик вроде не в вебовом разделе расположен, так что это не через HTTP, да?


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
shamber
Дата 11.10.2007, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

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



KSURi, ему просто хочется в Console выводить красивый вывод(ссори за тафтологию). Показать пользователю, что прога работает. smile
PM MAIL Jabber   Вверх
KSURi
Дата 11.10.2007, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



а ну тогда, если под винды можно заюзать Win32::Console


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
Perl_sapiens
Дата 3.3.2008, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



 smile  вывода такого ПрогрессБара
PM MAIL   Вверх
nitr
Дата 16.3.2008, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Было уже на форуме, вот интересно:

ProgressBar.pm
Код

package ProgressBar;
use File::Basename;

my $max = 50;

sub new {
    local $| = 1;
    my ($class, $filename) = @_;
    my $self = bless {}, $class;
    $self->{SIZE} = -s($filename);
    $self->{STEP} = int($self->{SIZE} / $max);
    $self->{NUM} = 0;
    $self->{CURR} = undef;
    my $caption = basename($filename);
    $caption =~ m!^(.{1,8})!;
    $caption = $1;
    print "$caption:\t";
    for (my $j = 0; $j < $max; $j++) { print chr(176) };
    for (my $j = 0; $j < $max; $j++) { print chr(8) };
    return $self;
}
sub DESTROY {print "\n"}

sub render{
    local $| = 1;
    my $self = shift;
    if (@_) { $self->{CURR} = shift }
    my $number_for_add = $self->{CURR} - $self->{NUM}  * $self->{STEP};
    if ($number_for_add > 0) {
        $number_for_add = int($number_for_add / $self->{STEP});
        $self->{NUM} += $number_for_add;
        for (my $j = 0; $j < $number_for_add; $j++) { print chr(219) };
    }
    return $self->{NUM};  
}

1;


sample.pl
Код

#!perl
use strict;
use ProgressBar;

my $in_file = 'filename';
my $progress = new ProgressBar($in_file);
open my $fh, '<', $in_file || die "can't open file $!\n";
while (my $line = <$fh>){
  $progress->render(tell $fh);
  #текст программы
}
close $fh;



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


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

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


 




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


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

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