Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: преобразовать текстовый документ  (Прочитано 3061 раз)

0 Пользователей и 1 Гость просматривают эту тему.

andrey_p

  • Гость
Re: преобразовать текстовый документ
« Ответ #15 : 15 Мая 2011, 19:01:17 »
Пожалуйста. Читает из файла или стандартного ввода. Выводим на стандартный вывод. Используем, допустим, так:

$ ./script.pl 100 in.txt >out.txt
Предварительно:
$ sudo apt-get install libtext-autoformat-perl
$ chmod +x script.pl

Собственно скрипт:
#!/usr/bin/perl -w

# usage: perl WIDTH [FILENAME]

use Text::Autoformat;

my $width = shift;

undef $/;
my $text = <>;

$text = autoformat {all => 1, right => $width}, $text;

for (split /\n/, $text) {
    printf "%-${width}s#\n", $_;
}

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

Задача то простая, но нужна нормальная "спецификация". Я же просил пример входного текста. Как выглядят абзацы, чтоб их считать в строку? Что делать, если длина строки получится шире WIDTH? В каком формате нужен выход - если в текстовом, причем тут моноширный шрифт?
« Последнее редактирование: 15 Мая 2011, 19:03:52 от andrey_p »

Оффлайн oleksandr1

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: преобразовать текстовый документ
« Ответ #16 : 15 Мая 2011, 20:38:54 »
Спасибо за быстрые ответы, а можно в личку напишу? Через аську например?

Пользователь решил продолжить мысль 15 Мая 2011, 21:32:21:
Формат выхода - текстовый, абзацы - текст заключенный в теги <p>Текст</p>
Пример входного текста (текстовый формат doc.txt):

<p>Только вот про абзацы опять немного не понял. Этот скрипт, если длина строки шире заданной в командной строке WIDTH,
будет разбивать ее на несколько.</p>

<p>Задача то простая, но нужна нормальная "спецификация". Я же просил пример входного текста. Как выглядят абзацы, чтоб их считать в строку? Что делать, если длина строки получится шире WIDTH? В каком формате нужен выход - если в текстовом, причем тут моноширный шрифт?</p>


Выход:
<p>
Только вот про абзацы опять немного не понял.      #<br>
Этот скрипт, если длина строки шире заданной в     #<br>
командной строке WIDTH, будет разбивать ее на     #<br>
несколько.                                                              #<br>
</p>
<p>
Задача то простая, но нужна нормальная                #<br>
"спецификация". Я же просил пример входного        #<br>
текста. Как выглядят абзацы, чтоб их считать в       #<br>
строку? Что делать, если длина строки получится    #<br>
шире WIDTH? В каком формате нужен выход - если #<br>
в текстовом, причем тут моноширный шрифт?         #<br>
</p>
  
Вроде так выглядят входной текст и выход.
« Последнее редактирование: 15 Мая 2011, 21:38:03 от oleksandr1 »

 

Страница сгенерирована за 0.029 секунд. Запросов: 23.