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

Показать сообщение отдельно

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


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

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


Попробуйте вот это на VBS:
Код: Выделить весь код
Option Explicit

Dim fso, vStreamSrc1, vStreamSrc2, vStreamDest
Dim strLine1, strLine2, strSrc1, strSrc2

Const FILE_SRC1 = "R:\1.txt"  'что менять
Const FILE_SRC2 = "R:\2.txt"  'откуда брать замену
Const FILE_DEST = "R:\3.txt"  'куда сохранить

Function Between(strWhereSearch, strLeftString, strRightString)
	Dim pos1, pos2
	pos1 = InStr(1, strWhereSearch, strLeftString, vbTextCompare)
	If pos1 Then
		pos2 = InStr(pos1 + 1, strWhereSearch, strRightString, vbTextCompare)
		If pos2 Then
			Between = Mid(strWhereSearch, pos1 + 1, pos2 - pos1 - 1)
			Exit Function
		End If
	End If
	Between = ""
End Function

Set fso = CreateObject("Scripting.FileSystemObject")

Set vStreamSrc1 = fso.OpenTextFile(FILE_SRC1, 1, False, 0)
Set vStreamSrc2 = fso.OpenTextFile(FILE_SRC2, 1, False, 0)
Set vStreamDest = fso.OpenTextFile(FILE_DEST, 2, True, 0)

While Not vStreamSrc1.AtEndOfStream
	strLine1 = vStreamSrc1.ReadLine
	strSrc1 = Between(strLine1, "[", " StatsObject]")
	If strSrc1 <> "" Then
		strSrc2 = ""
		While (Not vStreamSrc2.AtEndOfStream) And (strSrc2 = "")
			strLine2 = vStreamSrc2.ReadLine
			strSrc2 = Between(strLine2, "[", "]")
		Wend
		If strSrc2 <> "" Then
			vStreamDest.WriteLine Replace(strLine1, strSrc1, strSrc2, 1, 1, vbTextCompare)
		Else
			vStreamDest.WriteLine strLine1
		End If
	Else
		vStreamDest.WriteLine strLine1
	End If
Wend

vStreamSrc1.Close
vStreamSrc2.Close
vStreamDest.Close

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

Отправлено: 08:38, 25-08-2012 | #5