Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Заменить несколько участков текстового файла на иной различный текст

Ответить
Настройки темы
Любой язык - Заменить несколько участков текстового файла на иной различный текст

Новый участник


Сообщения: 2
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: VARZeeK
Дата: 14-11-2012
Всем привет. Надеюсь, название темы не слишком корявое.

Нужно в текстовом файле определенные участки заменить на другой текст. Помимо целевого файла, есть текстовый документ, где через пробел (или иной символ в роли разделителя (.,;:|), мне без разницы) прописаны пары "исходный_текст замена", каждая пара на отдельной строке... Либо могу сделать два отдельных файла, в одном стобец исходных текстов, в другом столбец замен.
В общем, скрипт должен брать из этих пар первый текст, находить его в целевом файле и менять на соответствующий (по строке?) текст замены.

В данный момент приходится делать так:
В одном окне открыт текстовый файл с подготовленными парами

исходный1 замена1
исходный2 замена2
исходный3 замена3
исходный4 замена4
...

В другом - целевой файл, в котором, собственно, нужно произвести все эти замены.

И вот я в первом выделяю исходный1, Копировать, во втором Правка-Заменить, вставляю в "Что" исходный1, возвращаюсь в первый файл, выделяю замена1, вставляю во втором в поле замены "Чем", Заменить всё (заменяемые тексты в файле несколько раз повторяются). И так каждый раз... Муторно писец, вы понимаете Нужно автоматизировать процесс.

BAT, VBS, ещё что-то, или отдельная программа-утилита, мне совершенно не принципиально.

Друг попробовал на Дельфях реализовать задачу, но утилита почему-то только по 8 штук смогла заменять, все за раз никак...

Help

Отправлено: 20:03, 13-11-2012

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Если без проверок — то вот Вам примерная болванка кода:
читать дальше »
Код: Выделить весь код
Option Explicit

Const ForReading   = 1
Const ForWriting   = 2


Dim objTSSource1
Dim objTSSource2


With WScript.CreateObject("Scripting.FileSystemObject")
	Set objTSSource1 = .OpenTextFile("C:\Песочница\006\Source1.txt", ForReading)
	Set objTSSource2 = .OpenTextFile("C:\Песочница\006\Source2.txt", ForReading)
	
	With .OpenTextFile("C:\Песочница\006\Destination.txt", ForWriting, True)
		Do Until objTSSource1.AtEndOfStream
			.WriteLine objTSSource1.ReadLine() & "," & Split(objTSSource2.ReadLine(), ",", 3)(2)
		Loop
		
		.Close
	End With
	
	objTSSource2.Close
	objTSSource1.Close
		
	Set objTSSource2 = Nothing
	Set objTSSource1 = Nothing
End With

WScript.Quit 0

Последний раз редактировалось Iska, 19-11-2012 в 17:36. Причина: Исправлена ошибка: «…, 4)(3)» → «…, 3)(2)»

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:04, 19-11-2012 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо то что нужно, только подправил строчку

.WriteLine objTSSource1.ReadLine() & "," & Split(objTSSource2.ReadLine(), ",", 3)(2)

Отправлено: 16:54, 19-11-2012 | #12


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Маразм. маразм… a_aforkin, спасибо, поправил.

Отправлено: 17:37, 19-11-2012 | #13



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Заменить несколько участков текстового файла на иной различный текст

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] из строк текстового файла нужно вырезать определенные символы alek2012 Скриптовые языки администрирования Windows 10 11-07-2012 16:54
CMD/BAT - [решено] Проверка соответствия имени файла rsod Скриптовые языки администрирования Windows 3 03-08-2011 18:52
Разное - [решено] Excel 2003 выбор текстового значения или заменить bygor1412 Microsoft Office (Word, Excel, Outlook и т.д.) 2 24-10-2010 03:09
CMD/BAT - [решено] Разбивка текстового файла файла Seryoga204 Скриптовые языки администрирования Windows 1 04-10-2010 21:19
CMD/BAT - [решено] Как скопировать имя файла из текстового файла в код батника и т.д. Nun-Nun Скриптовые языки администрирования Windows 6 13-05-2009 13:28




 
Переход