![]() |
Работа с текстовым файлом
Приветствую. По "работе" нужно копаться с файлами - перетаскивать строки в файле "A.txt" по примеру постановки текста в файле "B.txt". Соль в том, что во-первых в файлах, с которыми мне нужно работать, очень много пустых строк и комментариев, начинающихся на символ "#", во-вторых строки просто по-разному стоят, и с этим очень нудно работать, по этому я очень надеюсь на вашу помощь.
Вот текст файла-примера: А так выглядит файл, с которым нужно работать: Не обращайте внимания на то, что стоит после "=" - главное, чтобы все строки шли как в файле примере, по той же очереди. Примечание: параметр map_slot в некоторых файлах встречается не один раз. Мне нужно всего 3 вещи: 1) Чтобы строки во втором файле были расположены как в первом 2) Чтобы в получившемся файле не было пустых строк 3) Чтобы в получившемся файле не было строк, начинающихся на символ "#" Фух, всё описал. Очень надеюсь на вашу помощь, заранее спасибо. |
Пробуйте:
Скрипту требуется указать два аргумента: образец, мастер-файл и рабочий, целевой файл. Из мастер-файла берутся левые части строк до символа «=» и их порядок. Из целевого файла убираются пустые строки и строки, начинающиеся на «#». Из остальных строк в порядке, заданном порядком левых частей строк мастер-файла, строится новое содержимое целевого файла. Если в мастер-файле существуют левые части строк, отсутствующие в целевом файле, то такие строки добавляются в целевой файл с пустыми значениями — пустыми правыми частями после знака равенства. В конце нового содержимого целевого файла указываются строки оригинального целевого файла, которым не было найдено соответствия с левыми частями строк мастер-файла. Оригинальное предыдущее содержимое целевого файла остаётся доступным в одноимённом файле с расширением «.bak» (при этом, если таковой .bak файл уже существовал ранее — его содержимое будет утеряно). |
Время: 22:45. |
Время: 22:45.
© OSzone.net 2001-