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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> форматы, вывод форматированого хелпа 
:(
    Опции темы
saint
  Дата 5.2.2006, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Доброго времени суток.

Подскажите плиз каким образом можно вывести на экран хелп так чтобы абзацы всегда имели такой вид как показано ниже, не зависимо от ширины экрана?

Цитата

PageName|ModuleName...
        is the name of a piece of documentation that you want to look at. You
        may either give a descriptive name of the page (as in the case of
        `perlfunc') the name of a module, either like `Term::Info' or like
        `Term/Info', or the name of a program, like `perldoc'.

BuiltinFunction
        is the name of a perl function.  Will extract documentation from
        `perlfunc'.

FAQRegex
        is a regex. Will search perlfaq[1-9] for and extract any
        questions that match.


Т.е. что бы абзац с отступом всегда имел одинаковый отступ, независимо от того сколь строк в этом абзаце.

Заранее благодарен.


PM MAIL   Вверх
korob2001
Дата 6.2.2006, 04:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

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



Где и как хранятся строки, которые ты хочешь отформатировать?


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
saint
Дата 6.2.2006, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вообще-то предположительно они хранятся в переменных в теле скрипта в виде $head[$i] $description[$i]. Есть ли какие-то преимущества в формировании хелпа из pod-документации скрипта при помощи модуля Getopt, т.е. я так понимаю что он (хелп) буде уже отформатированый?
PM MAIL   Вверх
korob2001
Дата 6.2.2006, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

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



Я так и не понял, ты хочешь создать документацию POD или же ты просто хочешь вывести на терминал 2 переменные, где одна это заголовок, а вторая это описание?

Если тебе нужна документация, то вот небольшой пример:
Код

package MyClass;

my $count = 0;

=head1 new

       This is constructor of this class.

=cut
sub new {
    my $check = shift;
    my $class = ref( $check ) || $check;
    my $self  = { name => "Anonim",
                  phone => "" };
    bless( $self, $class );
    ++$count;
    return $self;
}

=head1 setName

       The setName() method, set a new value for name of user.

=cut
sub setName {
    my $self = shift;
    $self->{name} = shift;
}

=head1 getName

       The getName() method return name of user.

=cut
sub getName {
    my $self = shift;
    return $self->{name};
}

=head1 getCount

       This method return count of created objects.

=cut
sub getCount {
    return $count;
}

=head1 AUTHOR

       Korobov Denis ([email protected]).

=head1 SEE ALSO

       http://cpan.org

=head1 COPYRIGHT

       This programm is free software. You may copy or
       redistribute it under the same terms as Perl itself.

=cut

1;

Если же тебе нужно просто отформатировать две переменные или два элемента массива, то можешь заюзать format или printf. Для примера, создай текстовый файл, такой структуры:
Код

Title1*Description1
Title2*Description2
Title3*Description3
........
Title(n)*Description(n)

Теперь сохрани в том же каталоге, такой код:
Код

#!/usr/bin/perl -w
use IO::File;

my $fh = IO::File->new("help.txt") or die "Can't open file: $!\n";

while (my $line = $fh->getline()) {
       chomp $line;
       my($title, $description) = split(/\*/, $line);

$~ = STDOUT_TITLE;
write;

format STDOUT_TITLE =
@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$title
.

print "\n";

$~ = STDOUT_DESCRIPTION;
write;
format STDOUT_DESCRIPTION =
       ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<~~
$description
.
print "\n";
}

$fh->close();

Текстовый файл и сам исходник прицепляю к сообщению. Достаточно распаковать его и запустить программу report.pl

Присоединённый файл ( Кол-во скачиваний: 0 )
Присоединённый файл  report.zip 1,81 Kb


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


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

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


 




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


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

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