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

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

Ветеран


Contributor


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

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


Aleks911tat, Вот вариант решения
Код: Выделить весь код
File1 = "D:\_Удали это\1.txt"
File2 = "D:\_Удали это\2.txt"
File3 = "D:\_Удали это\1new.txt"
WordKey = " StatsObject]"

Set FSO = CreateObject("Scripting.FileSystemObject")

Set F = FSO.OpenTextFile(File2, 1, False)       ' Открываем исходный текст файл для чтения
AllTxt = F.ReadAll()                            ' Cчитываем весь файл в строковую переменную
F.Close                                         ' Закрываем файл

Mas = Split(AllTxt, vbCrLf)                     ' Разбиваем полученную строку в массив. Резделитель - конец строки и перевод строки vbCrLf

i0 = 0
ii = UBound(Mas)

Set F = FSO.OpenTextFile(File1, 1, False)       ' Открываем исходный текст файл для чтения
Set FF = FSO.OpenTextFile(File3, 2, True)        ' Создаём файл для записи результата

A = ""
wk = LCase(WordKey)
j = 0
Do While Not F.AtEndOfStream
    InString = Trim(F.ReadLine)
    If i0 <= ii Then
      If Mid(InString, 1, 1) = "[" Then
        If InStr(LCase(InString), wk) <> 0 Then
            For i = i0 To ii
                MM = Trim(Mas(i))
                j = i
                If Mid(MM, 1, 1) = "[" Then
                   InString = Replace(MM, "]", WordKey)
                   Exit For
                End If
            Next
            i0 = j + 1
        End If
      End If
    End If
    FF.Write A + InString
    A = vbCrLf
Loop

F.Close
FF.Close

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 25-08-2012 в 21:16.

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

Отправлено: 17:57, 25-08-2012 | #9