Заменить несколько участков текстового файла на иной различный текст
Всем привет. Надеюсь, название темы не слишком корявое.
Нужно в текстовом файле определенные участки заменить на другой текст. Помимо целевого файла, есть текстовый документ, где через пробел (или иной символ в роли разделителя (.,;:|), мне без разницы) прописаны пары "исходный_текст замена", каждая пара на отдельной строке... Либо могу сделать два отдельных файла, в одном стобец исходных текстов, в другом столбец замен. В общем, скрипт должен брать из этих пар первый текст, находить его в целевом файле и менять на соответствующий (по строке?) текст замены. В данный момент приходится делать так: В одном окне открыт текстовый файл с подготовленными парами исходный1 замена1 исходный2 замена2 исходный3 замена3 исходный4 замена4 ... В другом - целевой файл, в котором, собственно, нужно произвести все эти замены. И вот я в первом выделяю исходный1, Копировать, во втором Правка-Заменить, вставляю в "Что" исходный1, возвращаюсь в первый файл, выделяю замена1, вставляю во втором в поле замены "Чем", Заменить всё (заменяемые тексты в файле несколько раз повторяются). И так каждый раз... Муторно писец, вы понимаете :( Нужно автоматизировать процесс. BAT, VBS, ещё что-то, или отдельная программа-утилита, мне совершенно не принципиально. Друг попробовал на Дельфях реализовать задачу, но утилита почему-то только по 8 штук смогла заменять, все за раз никак... Help :( |
VARZeeK, кодировка файлов?
|
Iska, ANSI/ISO-8859-1, вроде бы (открыл файлы через браузер, он выбрал её).
А может быть и Windows-1251. Но кириллицы в этих файлах нет, если что. Просто я сейчас с ноута, на котором Винда англоязычная, файлы с компа с русской ОС. |
VARZeeK, тогда упакуйте пару-тройку файлов + «текстовый файл с подготовленными парами» в архив и выложите его на обменник, либо прикрепите к сообщению.
|
Вложений: 1
Исходный текст и текст на замену содержат пробелы? Длина текста может быть разная? Вообще-то Вы не написали, откуда берутся тексты (исходные и замена). Как вариант, Ваши тексты удобно было бы иметь в двух столбцах таблицы Excel (тогда то, что я спрашиваю, значения не имеет), и в этой таблице можно было бы запустить макрос, который преобразует ваш целевой файл в соответствии с таблицей. Пример такого решения (тестовый текстовый файл и тестовая таблица замены с макросом) в прикрепленном файле. Не проблема переделать макрос в VBS-скрипт, который откроет текстовый файл с заменами. Но надо четче представлять, как разделяются тексты - исходный и замена. Текст макроса прилагаю
Код:
Sub ReplTxt() |
Вложений: 1
Доброго времени суток!
Есть 2 файла содержащие сообщения след характера: 1 файл 0000000001,0000000000,000000,-00155,000155,003906,-07811,003906 0000000002,0000001000,003090,-00175,000119,005805,-07429,001624 0000000003,0000002000,005877,-00178,000073,007136,-06319,-00816 0000000004,0000003000,008089,-00163,000019,007769,-04591,-03177 2файл 0000000001,0000000000,000000,-00166,000177,004606,-07711,003906 0000000002,0000001000,003090,-00166,000177,004605,-07729,001624 0000000003,0000002000,005877,-00166,000078,004636,-06919,-00816 0000000004,0000003000,008089,-00166,000079,0046769,-05691,-03177 Содержат n-ое кол-во строк. Нужно скопировать и вставить столбцы со 2ого по 8 второго файла в первый в соответствующую строку. Т.е. получить 1 файл следующего содержания. 0000000001,0000000000,000000,-00155,000155,003906,-07811,003906,000000,-00166,000177,004606,-07711,003906 0000000002,0000001000,003090,-00175,000119,005805,-07429,001624,003090,-00166,000177,004605,-07729,001624 0000000003,0000002000,005877,-00178,000073,007136,-06319,-00816,-00166,000078,004636,-06919,-00816 0000000004,0000003000,008089,-00163,000019,007769,-04591,-03177,008089,-00166,000079,0046769,-05691,-03177 |
|
ага всё верно с 3его столбца, номер строки определяет число первого столбца, н-р 0000000001.
Первые 2 столбца в строке имеют описательный характер. с 3 и последующие значения переменных. Тоесть в первый файл надо добавить только значения переменных 2ого файла(так как описательные столбцы одинаковые для соответствующих строк) |
Цитата:
|
из строки N 2ого файла столбцы 3 по M (последний) — в строку N первого файла начиная со столбца M+1, столбцы c 3 по М второго файла.
И так с каждой соответствующей строкой файлов |
Если без проверок — то вот Вам примерная болванка кода:
|
Спасибо то что нужно, только подправил строчку
.WriteLine objTSSource1.ReadLine() & "," & Split(objTSSource2.ReadLine(), ",", 3)(2) |
Маразм. маразм… a_aforkin, спасибо, поправил.
|
Время: 13:02. |
Время: 13:02.
© OSzone.net 2001-