?

Log in

No account? Create an account
Досуг Программиста или Как Это Делается - Логово программиста
July 17th, 2007
04:16 pm

[Link]

Previous Entry Share Next Entry
Досуг Программиста или Как Это Делается
В архивах обнаружил текстовые файлы 10+ -летней давности. Решил привести их к виду, неудобному для логарифмирования удобному для редактирования.

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

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

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

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

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

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

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

Tags:

(17 comments | Leave a comment)

Comments
 
[User Picture]
From:mr_parson
Date:July 17th, 2007 12:57 pm (UTC)
(Link)
Правильно ли я понимаю, что эта задача решалась на сях?
[User Picture]
From:d_byzero
Date:July 17th, 2007 01:44 pm (UTC)
(Link)
Угу. Мне на них быстрее. Я на них думаю :-)
[User Picture]
From:mr_parson
Date:July 17th, 2007 02:26 pm (UTC)
(Link)
Всегда восхищался людьми, умеющими мыслить в терминах fopen :). Я бы тупо на ворде набил бы киборд макрос. Не эстетично, зато дешево, удобно и практично. Можно даже в темплейт забить.
[User Picture]
From:d_byzero
Date:July 18th, 2007 07:48 am (UTC)
(Link)
Ну тогда я достоин Твоего Восхищения! ;-) Я, вообще-то, на C++ пишу. И все объектно-ориентированное очень уважаю. Но при работе с файлами и строками пользуюсь функциями классического C.
Зато я восхищаюсь людьми, которые хорошо владеют всякими виндовыми наворотами (типа вордовых макросов, VBA и пр.) Говорят, это просто...
[User Picture]
From:hardsign
Date:July 17th, 2007 01:19 pm (UTC)
(Link)
а у меня есть такой скриптик.
5K текста на REXX :)
Поделиццо?
[User Picture]
From:d_byzero
Date:July 17th, 2007 01:42 pm (UTC)
(Link)
Спасибо. Да уже все хорошо :-)
Можно ламерский вопрос, что такое REXX?
[User Picture]
From:hardsign
Date:July 18th, 2007 06:01 am (UTC)
(Link)
REstructured eXtended eXecutor
такой командный язык, разработанный IBM для OS/360
я имел с ним дело под OS/2, где он входит в стандартную поставку в качестве командного процессора
есть стандарт ANSI и свободно распространяемый интерпретатор под кучу платформ:
http://regina-rexx.sourceforge.net/
[User Picture]
From:chucker_mpa
Date:July 18th, 2007 06:11 am (UTC)
(Link)
Сори...
не он-ли случайно еще в системе PC-DOS 2000 в качестве штатного bat-языка шел? я чсто-то такое
припоминаю...
[User Picture]
From:hardsign
Date:July 18th, 2007 01:39 pm (UTC)
(Link)
Да, в PC-DOS он тоже был.
Отвечая на коммент ниже, W&D -- классный редактор! Но к сожалению, слишком много там было сделано "своим путём". А чтобы такая отсебятина стала стандартом, необходимо быть Microsoft'ом...
[User Picture]
From:chucker_mpa
Date:July 18th, 2007 01:42 pm (UTC)
(Link)
значит не изменяет )
про ВиД - а как он красиво удалял символы! с анимацией... ))))

да, есть что вспомнить )
[User Picture]
From:d_byzero
Date:July 18th, 2007 01:56 pm (UTC)
(Link)
Пасибки
[User Picture]
From:zloy_homyak
Date:July 17th, 2007 03:00 pm (UTC)

кто ж не помнит Лексикон

(Link)
о, да. операции со строками - это наше всё. правда последнее время на C#, но это те же уши вид с боку.
зато уже имею 3(!) абсолютно разных формата входящих файлов, причем 2 из них содержат аналогичные по своей сути данные, только от разных фирм, ну и разумеется разного формата. Но эти хоть строку после каждой трансакции переводят, а третий и этого не делает. Превращаю это все несчастье в xml, ну а дальше уж лафа. :-)

смешнее всего было, когда однажды понадобилось в рамках одного проекта перейти с Access'a на SQL Server, причем данные в Access писались как раз в cp1251, а на будущее хотели юникод. Тут-то и выяснилось, что ни Access ни SQL Server мне в этом деле помогать не будут. Пришлось тупой конвертер писать.
[User Picture]
From:chucker_mpa
Date:July 18th, 2007 06:13 am (UTC)
(Link)
значит так. по пунктам.
1. Вы, Батенька, все же неисправимый изврапрограммист )))
2. драйвер NTFS для Linux, который держит запись - ntfs-3g. Рекомендую.
3. Лексикон помню, но смутно - видел но не юзал. А вот Word & Deed помнишь? ))
[User Picture]
From:d_byzero
Date:July 18th, 2007 07:59 am (UTC)
(Link)
1. Да!
2. Спасибо!
3. Нет. Но 10 лет назад я немного проработал в конторе, где корпоративным редактором (и форматом) для текстов был WordStar. Он уже тогда выглядел как пластинка на 78 оборотов среди CD-дисков. Он выдавал почти ascii - файл, но с некоторыми управляющими символами, которые сильно мешали просмотру такого файла просто как текстового. В Norton Commander'е (который в то время еще был популярен, хотя пик его славы был позади) был WordStar viewer. Но он был с ошибками. Поэтому, такое файло лучше всего было смотреть непосредственно из редактора. И ладно б только вся документация была в нем, так еще и вся переписка!
[User Picture]
From:chucker_mpa
Date:July 18th, 2007 01:43 pm (UTC)
(Link)
о да... я до сих пор юзаю Total Commander - который по-сути тот же Нортон...
[User Picture]
From:d_byzero
Date:July 18th, 2007 01:53 pm (UTC)
(Link)
А я в mc живу. Это те же яйца, но пингвиньи :-) Но вот WordStar, боюсь, ни тот, ни другой посмотрть не смогут.

[User Picture]
From:chucker_mpa
Date:July 18th, 2007 07:04 pm (UTC)
(Link)
страшно сказать, я тоже. ибо Суся.
Powered by LiveJournal.com