Имя пользователя:
Пароль:
 

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

Ветеран


Contributor


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

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


Код: Выделить весь код
fName = "D:\Delete\111.txt"                     ' Где текстовый файл

tStrok = "домино"                               ' Что ищем в строке текста
bStrok = "1"                                    ' Что вставляем/удаляем в начале найденной строки
eStrok = "другое"                               ' С этим словом строки не меняем


Set FSO = CreateObject("Scripting.FileSystemObject")

Set F = FSO.OpenTextFile(fName, 1, False)       ' Открываем исходный текст файл для чтения
Mas = Split(F.ReadAll(), vbCrLf)                ' Cчитываем весь файл в строковую переменную Разбиваем полученную строку в массив. Резделитель - конец строки и перевод строки vbCrLf
F.Close                                         ' Закрываем файл

N = UBound(Mas)

LtStrok = LCase(tStrok)                         ' Преобразуем иском подстроку к ниж регистру
LbStrok = LCase(bStrok)                         ' Преобразуем вставляем/удаляем подстроку к ниж регистру
LeStrok = LCase(eStrok)                         ' Преобразуем исключение подстроку к ниж регистру

ii = Len(bStrok)

For i = 0 To N
    LMas = LCase(Mas(i))                                                                ' Преобразуем строку к ниж регистру
    If InStr(1, LMas, LtStrok, 1) <> 0 And InStr(1, LMas, LeStrok, 1) = 0 Then          ' Если подстрока найдена а исключения нет
        If InStr(1, LMas, LbStrok, 1) = 1 Then                                          ' Если в начале строки есть удаляемая подстрока
            Mas(i) = LTrim(Mid(Mas(i), ii + 1))
        Else
            Mas(i) = bStrok + " " + Mas(i)
        End If
    End If
Next

Set F = FSO.OpenTextFile(fName, 2, False)   ' Открываем исходный файл для записи
F.Write Join(Mas, vbCrLf)                   ' Консолидируем массив в строку для записи Записываем полученное на место исходного файла
F.Close                                     ' Закрываем файл

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

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

Отправлено: 10:04, 16-12-2011 | #11