Division Byzero (d_byzero) wrote,
Division Byzero
d_byzero

Досуг Программиста или Как Это Делается

В архивах обнаружил текстовые файлы 10+ -летней давности. Решил привести их к виду, неудобному для логарифмирования удобному для редактирования.

Тексты из Лексикона (в судии еще кто-нибудь помнит этот продукт?), форматированные по ширине, а это значит:
- DOS-кодировка;
- каждая строка заканчивается "переводом строки";
- Абзац начинается с пробелов ("красная строка");
- Количество пробелов между словами непредсказуемо.

Хорошо хоть "переносов" нет.

Надо:
- кодировка cp1251
- абзац заканчивается "переводом строки", начинается с печатного символа, внутри только пробелы.
- между словами один пробел.

Существует минимум три стратегии решения задачи:
1. Открыть файл в "Ворде" (перекодирует он правильно), дальше все ручками, заодно тащась от содержимого. Занимает где-то Y часов. Недостаток: долго.
2. Открыть файл в "Ворде", и несколькими сериями контекстных замен привести текст к надлежащему виду. Занимает X часов, где X << Y. Недостаток: если файлов несколько, то все-таки не очень быстро, а файлов несколько.
3. Написать текстовый фильтр (занимает где-то 0.99X часов), что позволит конвернуть все сразу за 0.01X часов.Коэффициенты подобраны с оптимизмом, да, я осознаю, что может получиться не быстрее, чем вар.2. Но я иду этим путем. В частности, люблю я писать всякие штуки по обработке текстов.

Но. На своем ноуте я так и не удосужился поставить ни один подоконный компилятор. Потому как давно работаю в Пингвинуксе. А в Пингвинуксе С и С++ компилятор -- это как руль в автомобиле -- снять можно, но вообще-то он там всегда есть.

Итак, последовательность действий:
- Загрузить Пингвинукс
- Подмонтировать подоконный диск
- Переписать файлы
- Перекодировать в koi-8
- Написать фильтр
- Убедиться, что не работает
- Отладить
- Обработать файлы фильтром
- Перекодировать в cp1251
- переписать их обратно на подоконный диск
- вспомнить, что Пингвинукс не умеет писать в NTFS, подоконная утилита доступа к подпингвинным дискам осталась на работе
- переписать файлы на флэшку
- загрузить Окна
- прочитать файлы с флэшки.

Да, вар.2, наверное, короче. Но это скучно...
Tags: Досуг
Subscribe

  • Вооружаю Волчка

    Купил в подарок себе (и Волчку) такую вот штуку на крышу. Формально для надувной лодки, но на самом деле для чего угодно. А Миша подарил…

  • Длинная пятая

    Интересное наблюдение. У Волчка длинная пятая передача (кто еще не понял, я езжу только на "механике"). Поскольку Волчок Вочень Вумный, то он…

  • Ревакцинация

    Себе на память. Вчера, 20 июля, ревакцинировался Спутником-Лайт

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 17 comments

  • Вооружаю Волчка

    Купил в подарок себе (и Волчку) такую вот штуку на крышу. Формально для надувной лодки, но на самом деле для чего угодно. А Миша подарил…

  • Длинная пятая

    Интересное наблюдение. У Волчка длинная пятая передача (кто еще не понял, я езжу только на "механике"). Поскольку Волчок Вочень Вумный, то он…

  • Ревакцинация

    Себе на память. Вчера, 20 июля, ревакцинировался Спутником-Лайт