Пакетная замена в файлах

Автор: admin · Рубрика Блог починаючого програміста · Есть 4 коммент.

Занимаясь одним из сайтов я случайно столкнулся с проблемой пакетной замены текста во многих текстовых файлах (конкретная проблема выглядела так: есть примерно 2 тыс. файлов и нужно в каждой сотне файлов заменить определенный текст другим). Без автоматизации это задачка на целый день. Но чем мы  не программисты? Для рутинной автоматизации процессов берем мой любимый (нет не «1с Предприятие 8.1» :-) ) а Хіасм (hiasm.com) и делаем новую програмку.

Нашу задачу по автоматизации можно поделить на несколько логических этапов:

1. Ищем файлы и поочередно открываем каждый из них.

2. В открытом файле находим нужную строку и заменяем ее на другую

3. Записываем файл и закрываем его

4. Выводим отчет по работе с программой

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

Внешний облик нашей программы будет таким:

Вигляд прграми


В верху – поле выбора папки, как только папка выбрана, начинается поиск и замена файлов

Два поля внизу соответственно что ищем и на что  заменяем и внизу лог работы программы.

Элементы управления в программу добавляем из следующей панели

Елементи керування

общий вид программы в выходных кодах хиасма выглядит так:

Код програми

Код программы

Схемы для закачки добавлю в конце статьи.

Опишем что делает данная схема:

Поначалу мы после нажатия на кнопке где изображено многоточие запускаем диалог выбора папки, адрес папки указываем в текстовое поле. После этого запускаем поиск файлов с маской *.txt в данной папке. Каждый найденный файл, точнее его полный адрес и название передаем в мемо поле и открываем, запускаем замену текста и сохраняем измененный текст назад в файл. Параллельно выводим в другое мемо поле отчет об обработке файла.

В принцыпе все.

Ссылки на файлы для закачки дам сегодня вечером поскольку на работе нельзя заливать в инет файлы.

Кстати пост участвует в конкурсе

Комментарии

  1. UnodoFot каже:

    Соглашусь с автором. Многое из вышеперечисленного действительно актуально

  2. Довольно странный материал вы нам предоставили



Оставить комментарий или два