Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Пакетная замена значений в текстовых файлах (http://forum.oszone.net/showthread.php?t=336909)

Alexandr-Pessimist 28-09-2018 21:20 2833384

Пакетная замена значений в текстовых файлах
 
Здравствуйте. Подскажите пожалуйста, можно ли реализовать пакетную замену значений в текстовых файлах:
Предисловие:
1. Есть папка с файлами (включая подпапки), всего около 100 текстовых файлов.
2. Есть INI-файл с содержимым в виде:
Код:

[replace]
0x00123=0x00456

(старое_значение=новое_значение, около 120 пар значений)
Требуется поочередно открыть каждый текстовый файл, найти все старые значения, заменить их новыми значениями.
Процесс поиска\замены может занять около 20-30 мин., но это будет лучше, чем в Notepad++ вручную искать\заменять каждое значение во всех файлах в папке..

Iska 28-09-2018 22:00 2833392

Цитата:

Цитата Alexandr-Pessimist
всего около 100 текстовых файлов. »

Кодировка файлов какая? Какие концы строк? Можете просто упаковать несколько файлов в один архив вместе с ini-файлом и приложить к сообщению.

Цитата:

Цитата Alexandr-Pessimist
Процесс поиска\замены может занять около 20-30 мин. »

Не может.

Alexandr-Pessimist 28-09-2018 22:29 2833410

Iska, UTF-8, CRLF
Смысл вот в чем: есть распакованное android-приложение. Нужно открыть все файлы *.smali ,найти в них значения и заменить их новыми значениями. Для удобства правки значений, они сохранены парами (старое=новое). По сути - пакетная замена PUBLIC_ID ресурсов.. Файлов *.smali много, расположены в различных подпапках основной папки smali..
Как мне кажется, нужно загрузить в 1 array список всех *.smali в папке (включая подпапки), во 2 array загрузить всю секцию из INI-файла. Далее, циклом подставлять имя файла, старое значение и новое значение, например:
файл 1
найти 0x123 заменить на 0x321
найти 0x456 заменить на 0x654
...остальные пары значений
файл 2
найти 0x123 заменить на 0x321
найти 0x456 заменить на 0x654
...остальные пары значений

Iska 29-09-2018 11:37 2833466

Цитата:

Цитата Alexandr-Pessimist
UTF-8, »

Как именно определили? По единственному выложенному файлу — там может быть как ANSI/1251, так и UTF-8 без BOM: там символы только из ASCII-набора. А вот ini-файл Вы точно сделали в формате UTF-8 без BOM.

Alexandr-Pessimist 29-09-2018 22:30 2833563

Задача решена с помощью TextReplace, исходники есть в комплекте.


Время: 05:57.

Время: 05:57.
© OSzone.net 2001-