Вернуться на Страничку новостей.

02.10.2009

Полезная утилита

Случилось следующее: Понадобилось скачать учебник Артема Каева "1с бухгалтерия"
с сайта firststeps. Скачивал постранично 400 страниц. Затем естественно явилась
необходимость преобразовать отдельные страницы в книгу. Шаблон книги у меня есть.
Но из каждой html-страницы, которая скачана с интернета надо было убрать
несколько лишних фрагментов, а некоторые заменить. Для этого написал утилиту.
Чем намного ускорил преобразование отдельных страниц в книгу.
Неплохая это штука С++!

Программу писал как обычно в пошаговом режиме.

///////////
1-й вариант

Эта программа считывает построчно из файла в новый файл, но
еще делает следующее:
1. Убирает все строки от начала файла и до первой встречи лексемы "<h2>".
Назовем это Чердак.

2. Убирает все строки от первой встречи лексемы "<center>" до конца файла.
Назовем это Подвал.

Исходник программы находится: Здесь

///////////
2-й вариант
То же, что предыдущее, но в дополнение убирает еще фрагмент из середины текста.
Программа убирает и чердак, и подвал, и середину!
Это то, что мне надо!

Исходник программы находится: Здесь

///////////
3-й вариант

Эта программа в придачу к предыдущему заменяет еще и длинное наименование
пути: "<img src="www.ПЕРВЫЕ ШАГИ.ru __ Шаг 213 - Стан и тд ... "

Заменяет на:"<IMG SRC="images" и ставит тег <P> перед лексемой "<IMG SRC="images"

Эта программа выбирает по одному маркеру.
Не будем усложнять. Работает - пусть работает.

Исходник программы находится: Здесь

Код этих программ поместил в книгу "Строки и потоки", так как за начальную основу
этих программ была взята программа из этой книги.

Естественно, все маркеры могут быть изменены, программа перекомпилирована.
Или еще лучше, написать ее в стиле Windows, чтобы пользователь мог интерактивно
вводить маркеры. Впрочем, такой макрос кажется можно написать в Word-е.
Можете попробовать!

После этих программ вполне готова почва для программы, которая убирает из середины текста
фрагмент от маркера до маркера и заменяет его фрагментом из текстового файла. Здесь принцип:
делегируй обрезанную строку следующему блоку для новой обрезки и вывода или просто вывода.

Hosted by uCoz