Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   Старый софт »   Конвертер FB2 в TXT для Windows 3.0/3.1
RSS

Конвертер FB2 в TXT для Windows 3.0/3.1

<<Назад  Вперед>> Страницы: 1 2 * 3 4 5
Печать
 
Sozdatel
Advanced Member


Всего сообщений: 3518
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 апр. 2010
Fe-Restorator написал:
[q]
Узнал сразу ДВА новых слова: одно "Б" и другое "ратец"!!! :eek: :eek: :eek:
[/q]
Это связано с тем, что многие файлы формата FB2 представляют собой неотформатированный текст, где абзацы разделяются тегом >p> вместо символа перевода строки.

И поскольку строки, содержащиеся в абзацах с тегом >P> нередко получаются слишком длинными (более 100 символов), то конвертер на каждом 55 символе выполняет перенос на новую строку (вставляет в файл соответствующи спец.символы), чтобы файлы можно было комфортно просматривать без горизонтальной прокрутки в старых текстовых редакторах, которые не поддерживают автоматический перенос строки (WordPad, Edit, MultiEdit, Фотон и т.д).
Sozdatel
Advanced Member


Всего сообщений: 3518
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 апр. 2010
Конвертер в Windows 3.1

Fe-Restorator
Гость

Ссылка

Sozdatel написал:
[q]
Это связано с тем, что многие файлы формата FB2 представляют собой неотформатированный текст, где абзацы разделяются тегом >p> вместо символа перевода строки.
[/q]
Бред какой-то. Зачем тогда вообще нужен формат FB2?

1)
Дано: длинный текст в одну строку с тегами-разделителями, обозначающими абзацы.
Решение: Выполнить обработку файла в три прохода. Первый проход - разбить мега-строку на нормальные абзацы, коие метятся как CR/LF. Вторым проходом обработать остальные теги, получив правильное форматирование всего текста, включая перекодировку в нужный формат и расстановку мягких переносов по всем правилам языка. Третьим проходом порезать получившиеся абзацы на строки длиной ровно NN символов для показа на экране доса без горизонтального скроллинга, с учётом мягких переносов и схемы вёрстки (для сценариев и т.п.).

2)
Дано: длинный текст в одну строку с тегами-разделителями "абзаЦЦ" жёстко через каждые 60 символов текста, включая пробелы в начале виртуальных строк.
Решение: Выполнить обработку файла в 5 проходов.
Первым проходом расставить теги CR/LF взамен каждого тега "абзаЦЦ" исходной строки, получив жёстко форматированный текст.
Вторым проходом обработать остальные теги, получив правильное форматирование всего текста, БЕЗ перекодировки в нужный формат и БЕЗ расстановки мягких переносов. Это даст ровные текстовые строки по 60 символов в каждой, за исключением окончаний каждого абзаца.
Третьим проходом обрабатываем "жёсткие" абзацы по принципу "если в строке все 60 символов (с учётом оконечных пробелов), меняем CR/LF на обычный пробел. Если символов в строке меньше 60, оставляем всё как есть". В результате, получим правильно оформленные абзацы, уже без жёсткой разбивки на строки.
Четвёртым проходом выполняем перекодировку в нужный формат, удаление дублирующихся пробелов, расстановку мягких переносов, корректировку вёрстки в неординарных случаях (сценарии, и т.п.).
Пятым проходом нарезаем текст на строки нужного размера, с учётом мягких переносов и специфики вёрстки.
Сейчас на форуме
Sozdatel
Advanced Member


Всего сообщений: 3518
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 апр. 2010
Fe-Restorator написал:
[q]
Бред какой-то. Зачем тогда вообще нужен формат FB2?
[/q]
Попробуйте открыть любой файл формата fb2 в Блокноте или любом другом текстовом редакторе, чтобы убедиться в обратном.

Впрочем, благодарю за советы, есть над чем поработать (в исходном коде программы).
Fe-Restorator
Гость

Ссылка

Sozdatel написал:
[q]
Попробуйте открыть любой файл формата fb2 в Блокноте
[/q]
Открывал и смотрел. Твоя фраза прозвучала как "неформатированный текст в формате FB2", что есмь бред. Согласись.

PS. Советы не полны, ибо при сценарной вёрстке, например, стоит ставить дополнительные CR/LF перед каждым именем персонажа, что позволит отделить абзацы от заведомо коротких строк, сохранив вёрстку документа при всех промежуточных преобразованиях. То-ж относится и ко всякого толка заголовкам, эпиграфам, сноскам и прочим намеренно выделенным элементам документа.
Сейчас на форуме
Sozdatel
Advanced Member


Всего сообщений: 3518
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 апр. 2010
Fe-Restorator написал:
[q]
"неформатированный текст в формате FB2", что есмь бред.
[/q]
Была бы бредом, если бы при открытии файла в блокноте (например того же Фонвизиновского "Недоросля") из архива, мы бы увидели текст с правильным форматированием, как если бы он был набран вручную в текстовом редакторе.

Но вместо этого можно увидеть следующее.

На скриншоте - файл FB2, открыт в стандартном Блокнот из Windows 7 x64, перенос строк отключён (об этом свидетельствует наличие горизонтальной полосы прокрутки).

И поскольку большинство старых редакторов (под MS-DOS и Windows 3.1) не имеют функции автоматического переноса строк, пришлось реализовать добавление символа переноса на каждом 60-символе.
Fe-Restorator
Гость

Ссылка

Sozdatel написал:
[q]
Была бы бредом, если бы при открытии файла в блокноте
...
Но вместо этого можно увидеть следующее.
[/q]
Это формат FB2, никакого неформатированного текста здесь нет и в помине! Отвлекись от содержимого тех файлов, посмотри на подачу тобою информации. :thumbup:

Хороший конвертер не станет тупо рубить по 60 символов, включая теги.
Хороший конвертер сперва раскроет теги, превратит их в "книжного вида" свёрстанный текст, затем преобразует (по необходимости) жёстко порезанные на строки абзацы в абзацы непрерывные, расставит мягкие переносы и напоследок вновь жёстко порежет абзацы на строки заданной длины, с учётом одновременно и мягких переносов, и особенностей вёрстки.
Именно в такой последовательности действий.

Отчего получится:

- Хороший конвертер не станет тупо рубить по 60 симво-
        лов, включая теги.
- Хороший конвертер сперва раскроет теги, превратит
        их в "книжного вида" свёрстанный текст, затем
        преобразует (по необходимости) жёстко порезан-
        ные на строки абзацы в абзацы непрерывные, рас-
        ставит мягкие переносы и напоследок вновь жёст-
        ко порежет абзацы на строки заданной длины,
        с учётом одновременно и мягких переносов, и осо-
        бенностей вёрстки.

Немного не выдержал правую границу, что нелегко сделать средствами движка форума, вручную. Но смысл, думаю, понятен.

PS. Можно не разрывать слова по мягким переносам, а добавлять меж ними повторяющиеся пробелы, выравнивая обе границы текста разом. Эт как вариант, проще "сверстать", но труднее читать и отслеживать начало новых строк.

PPS. неплохо-бы дать пользователю возможность самому задать длину строки. В досе - она будет 80 символов, в планшете - уже 60, в e-ink-читалке - не более 40, в КПК - не более 25, в смартфонах может доходить и до 15. Эт при соблюдении одинакового комфортного для глаза размера шрифта на всех девайсах: 5мм по вертикали на полное знакоместо (3.х мм высота строчных букв, 4.х мм высота прописных букв). Миллиметры не типографская мера шрифта, указаны весьма приблизительно, для наглядности не знакомым с типографикой форумчанам.

PPPS. На время выполнения внутренних преобразований формата можно пользовать т.н. "текстовые теги". Например, часть символов "конец абзаца" в нужных частях документа временно обозначить сочетанием "^^^^" без кавычек. Такие "теги" не стандартизованы, но зело помогают не нарушить вёрстку документа, изменяя её части и фрагменты по заранее заданному правилу. Ведь, по-факту, придётся преобразовывать текст дважды (в самом жёстко испорченном варианте исходной вёрстки текста):
первый раз при избавлении от тегов формата FB2 как занимающих место в строке лишних символов,
второй раз - после преобразования из жёстко нарезанных строк неправильной длины и при преобразовании в жёстконарезанные строки длинны нужной, дабы сохранить исходную вёрстку документа (макет, структуру), неповреждённой.
Сейчас на форуме
Anderson1
Advanced Member


Откуда: Москва
Всего сообщений: 2098
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
27 фев. 2011
Sozdatel написал:
[q]
Работает во всех 16 и 32 разрядных версиях Windows - от Windows 3.0 и Windows 3.1 до Windows XP и 7 x86.
[/q]
Это не совсем правда - в Windows 3.0 не работает:



Это 286 Laptop 12MHz/1M/CGA/W3.0a

Windows 3.1 на том же компе, но в Hercules режиме, ибо CGA в 3.1 уже не поддерживается:



BTW, обнаружил у сабжа ещё один дефект: без мыши с этой прогой ничего нельзя сделать - хоткеи (типа ctrl+o, ctrl+tab) не работают.
Sozdatel
Advanced Member


Всего сообщений: 3518
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 апр. 2010
Anderson1 написал:
[q]
Это не совсем правда - в Windows 3.0 не работает:
[/q]
Прошу прощения, не знал. Не было возможности проверить.


Anderson1 написал:
[q]
BTW, обнаружил у сабжа ещё один дефект: без мыши с этой прогой ничего нельзя сделать - хоткеи (типа ctrl+o, ctrl+tab) не работают.
[/q]
Будет добавлено.
Sozdatel
Advanced Member


Всего сообщений: 3518
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 апр. 2010
Anderson1 написал:
[q]
Windows 3.1 на том же компе, но в Hercules режиме, ибо CGA в 3.1 уже не поддерживается:
[/q]
Криво отображается. Видимо придется уменьшить размер формы по ширине. Или сделать её полноэкранной.
<<Назад  Вперед>> Страницы: 1 2 * 3 4 5
Печать
Полигон-2 »   Старый софт »   Конвертер FB2 в TXT для Windows 3.0/3.1
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS