Поиск и замена стрингов в текстовых файлах
Правила форума
Пожалуйста, ознакомьтесь с правилами данного форума
Пожалуйста, ознакомьтесь с правилами данного форума
- Waterbyte
- Графоман
- Сообщения: 48035
- Зарегистрирован: 10 авг 2007, 13:43
Поиск и замена стрингов в текстовых файлах
от помощи знатных алгоритмистов не отказалсо бы. хотя бы советом.
задачко: есть около сотни зип-файлов. в каждом храниццо некий .ini-файл, в котором надо найти и заменить парочку стрингов, новая пара значений которых лежыт в одном текстовом файле (общем для всей той сотни), разбитом на секции, соответствующие именам тех зип-файлов. вручную это делается так: открываю первый зип, нахожу там нужный ini-файл, открываю его, нахожу первый стринг, подлежащий замене, лезу в тот общий текстовый файл, нахожу нужную секцию, копирую новый стринг, пейстю на место старого стринга, повторяю процедуру для второго стринга. открываю следующий зип и повторяю шаги. и так до сих пор, пока... хочеццо написать - пока зипы не кончаццо, а на самом деле получаеццо - пока глаза в кучку не соберуццо... короче, в то время, как космические корабли бороздят просторы, сижу и гроблю своё зрение и время. а нельзя ли как-нибудь этот творческий процесс поручить железяке, которая соображает в миллионы раз быстрее меня?
гран мерси заранее всем, кто поделиццо конструктивными мыслями на сей щщёт.
дополнительная информация: языками не владею, только чуточку сиквел на уровне кверей, и вижуал басик для аппликаций на уровне модулей для аксессов/екселей... а, да, ещё батч-файлы для мсдос помню :) правдо, с переменными, цыклами, еррорлевелами и всеми прочими делами...
задачко: есть около сотни зип-файлов. в каждом храниццо некий .ini-файл, в котором надо найти и заменить парочку стрингов, новая пара значений которых лежыт в одном текстовом файле (общем для всей той сотни), разбитом на секции, соответствующие именам тех зип-файлов. вручную это делается так: открываю первый зип, нахожу там нужный ini-файл, открываю его, нахожу первый стринг, подлежащий замене, лезу в тот общий текстовый файл, нахожу нужную секцию, копирую новый стринг, пейстю на место старого стринга, повторяю процедуру для второго стринга. открываю следующий зип и повторяю шаги. и так до сих пор, пока... хочеццо написать - пока зипы не кончаццо, а на самом деле получаеццо - пока глаза в кучку не соберуццо... короче, в то время, как космические корабли бороздят просторы, сижу и гроблю своё зрение и время. а нельзя ли как-нибудь этот творческий процесс поручить железяке, которая соображает в миллионы раз быстрее меня?
гран мерси заранее всем, кто поделиццо конструктивными мыслями на сей щщёт.
дополнительная информация: языками не владею, только чуточку сиквел на уровне кверей, и вижуал басик для аппликаций на уровне модулей для аксессов/екселей... а, да, ещё батч-файлы для мсдос помню :) правдо, с переменными, цыклами, еррорлевелами и всеми прочими делами...
- akela
- Графоман
- Сообщения: 13066
- Зарегистрирован: 21 авг 2007, 10:25
- Откуда: ru->de->bc.ca
Re: Поиск и замена стрингов в текстовых файлах
может, басиком и попробовать? Вот только не уверен хорошо ли он умеет с зип-файлами.Waterbyte писал(а):вижуал басик для аппликаций на уровне модулей для аксессов/екселей...
- Yury
- The L'ony
- Сообщения: 26202
- Зарегистрирован: 22 янв 2004, 13:48
- Откуда: Мирный -> Vancouver
- Контактная информация:
Re: Поиск и замена стрингов в текстовых файлах
умеет, для System.Shell зип - та же папка (я нечто подобное на access vba делаю)akela писал(а):может, басиком и попробовать? Вот только не уверен хорошо ли он умеет с зип-файлами.
примеры работы с зипами можно глянуть здесь, например
http://www.robvanderwoude.com/vbstech_files_zip.php
или здесь
http://www.rondebruin.nl/windowsxpzip.htm
http://www.rondebruin.nl/windowsxpunzip.htm
- mrskhris
- Маньяк
- Сообщения: 2082
- Зарегистрирован: 06 июн 2005, 19:37
- Откуда: RU - KY - NW - CQ
- Контактная информация:
Re: Поиск и замена стрингов в текстовых файлах
На мой взгляд, для обработки текста нет языка лучше perl'а.
- Yury
- The L'ony
- Сообщения: 26202
- Зарегистрирован: 22 янв 2004, 13:48
- Откуда: Мирный -> Vancouver
- Контактная информация:
Re: Поиск и замена стрингов в текстовых файлах
скорее всего так и есть, но, как говорится, часто самый короткий дорога - тот, который знаешьmrskhris писал(а):На мой взгляд, для обработки текста нет языка лучше perl'а.
тем более для разовых решений
- akela
- Графоман
- Сообщения: 13066
- Зарегистрирован: 21 авг 2007, 10:25
- Откуда: ru->de->bc.ca
Re: Поиск и замена стрингов в текстовых файлах
у меня первой мыслью было предложить пайтон... но учитывая заявленный бэкграунд клиента, а также факт того что VBA уже установлен в системе - смысл теряется.
- aissp
- Маньяк
- Сообщения: 2710
- Зарегистрирован: 07 ноя 2005, 09:51
Re: Поиск и замена стрингов в текстовых файлах
кртаенько, --- ручками ... все остальные рещения обойдутся тебе по времени дороже.
если задача типовая то придеЦЦа чего нибудь таки выучить. например тот же пайтон, ето совсем не сложно пара деньков. ну могет недельку. проще английского
если задача типовая то придеЦЦа чего нибудь таки выучить. например тот же пайтон, ето совсем не сложно пара деньков. ну могет недельку. проще английского
- alpax
- Графоман
- Сообщения: 10717
- Зарегистрирован: 04 мар 2003, 17:39
- Откуда: Richmond, BC
Re: Поиск и замена стрингов в текстовых файлах
Вот у меня тоже такое подозрение. Во-первых, долго изучать предмет, во-вторых, без опыта программирования можно накосячить и что-то упустить - не будет уверенности в том, что сделано правильно. Впрочем, при выполнении ручками тоже уверенности нет - от однообразности и усталости можно пропустить что-то.aissp писал(а):кртаенько, --- ручками ... все остальные рещения обойдутся тебе по времени дороже.
Вообще поскольку задача одноразовая я бы скорее всего и сам тоже не стал писать полноценный скрипт, а все это сделал бы в FAR (может с парой вспомогательных батников, да и то не факт, что они нужны) - развернуть все зипы каждый в свой каталог - несколько нажатий кнопок. Потом искать-заменять с помощью плагина типа Search&Replace. Если имя .ini файла одинаковое во всех архивах, задача упрощается - меньше действий понадобится. А если еще и пары значений для замены одинаковые хотя бы для части архивов, их вообще можно будет обрабатывать оптом.
- akela
- Графоман
- Сообщения: 13066
- Зарегистрирован: 21 авг 2007, 10:25
- Откуда: ru->de->bc.ca
Re: Поиск и замена стрингов в текстовых файлах
а хоть бы даже и не удастся времени сэкономить, ну и что? Удовольствия от написания программки всяко больше чем от тупого ковыряния. Да и в будущем пригодится.
- Waterbyte
- Графоман
- Сообщения: 48035
- Зарегистрирован: 10 авг 2007, 13:43
Re: Поиск и замена стрингов в текстовых файлах
пока что мне за ковыряние лучше платили, чем за удовольствие...akela писал(а):Удовольствия от написания программки всяко больше чем от тупого ковыряния.
пошол искать сёрч-н-риплейс плагин к фару. им и ковырну, пожалуй...
- alpax
- Графоман
- Сообщения: 10717
- Зарегистрирован: 04 мар 2003, 17:39
- Откуда: Richmond, BC
Re: Поиск и замена стрингов в текстовых файлах
Само решение задачи, поиск вариантов и разных способов решения, и положительный результат тоже приносят удовлетворение.akela писал(а):а хоть бы даже и не удастся времени сэкономить, ну и что? Удовольствия от написания программки всяко больше чем от тупого ковыряния.
Не факт.akela писал(а):Да и в будущем пригодится.
Да, полезно уметь программировать, даже хотя бы не слишком сложные скрипты. Однако не всегда можно сказать, что это умение реально получится использовать.
За других говорить не буду, но у меня, например, задачи обработки кучи файлов, где помогает написание скрипта, возникают раз в несколько месяцев. Для таких задач, особенно связанных с текстом, предпочитаю использовать Perl - просто потому, что в свое время как-то им воспользовался, изучил базовые функции, достаточные для подобных применений. Но за несколько месяцев я уже забываю некоторые детали, поскольку в обычной работе мне Perl не нужен, и в очередной раз приходится снова лезть в документацию, чтобы уточнить некоторые неочевидные вещи (которые в Perl на каждом шагу).
Так что я не знаю, насколько реально полезно непрограммисту браться за изучение какого-то языка для решения только одной задачи, с возможной вероятностью появления подобной, например, через несколько месяцев. Конечно если такие задачи возникают достаточно часто, какой-то подходящий способ автоматизации полезно найти и изучить.
- akela
- Графоман
- Сообщения: 13066
- Зарегистрирован: 21 авг 2007, 10:25
- Откуда: ru->de->bc.ca
Re: Поиск и замена стрингов в текстовых файлах
в ближнем будущем, да, ковыряйся в чём сказали и не жужжи, и тебе будет заплачено.Waterbyte писал(а):пока что мне за ковыряние лучше платили, чем за удовольствие...akela писал(а):Удовольствия от написания программки всяко больше чем от тупого ковыряния.
А в более отдалённом, кто знает... у меня неоднократно бывали случаи, когда удовольствие полученное сейчас, многократно оплачивалось через несколько лет.
Гм. Здесь (мне лично) помогает аккуратное сохранение всех текстов своих программок и скриптов, чтоб ничё не потерялось. Даже через год-другой, если возникает похожая задача, я просто снова беру какую-нибудь старую программку, модифицирую в ней пару строк, и вуаля.alpax писал(а):Но за несколько месяцев я уже забываю некоторые детали, поскольку в обычной работе мне Perl не нужен, и в очередной раз приходится снова лезть в документацию, чтобы уточнить некоторые неочевидные вещи (которые в Perl на каждом шагу).
- alpax
- Графоман
- Сообщения: 10717
- Зарегистрирован: 04 мар 2003, 17:39
- Откуда: Richmond, BC
Re: Поиск и замена стрингов в текстовых файлах
Этим и спасаюсь.akela писал(а):Гм. Здесь (мне лично) помогает аккуратное сохранение всех текстов своих программок и скриптов, чтоб ничё не потерялось. Даже через год-другой, если возникает похожая задача, я просто снова беру какую-нибудь старую программку, модифицирую в ней пару строк, и вуаля.

- Waterbyte
- Графоман
- Сообщения: 48035
- Зарегистрирован: 10 авг 2007, 13:43
Re: Поиск и замена стрингов в текстовых файлах
в более отдалённом я помру, и всё удовольствие насмарку пойдёт...akela писал(а):в ближнем будущем, да, ковыряйся в чём сказали и не жужжи, и тебе будет заплачено.
А в более отдалённом, кто знает...
- akela
- Графоман
- Сообщения: 13066
- Зарегистрирован: 21 авг 2007, 10:25
- Откуда: ru->de->bc.ca
Re: Поиск и замена стрингов в текстовых файлах
если помру, то это станет неважным. Если не помру, то получу бонус. Win-win ситуация.Waterbyte писал(а):в более отдалённом я помру, и всё удовольствие насмарку пойдёт...akela писал(а):в ближнем будущем, да, ковыряйся в чём сказали и не жужжи, и тебе будет заплачено.
А в более отдалённом, кто знает...