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

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

Ветеран


Contributor


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

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


С учетом замечания Iska, скрипт существенно сократился
Код: Выделить весь код
fName = "D:\Delete\111.txt"                     ' Где текстовый файл

iStrok = 3                                      ' В какой строке меняем текст
repTxt = "У попа была собака, он её любил"      ' Какой текст поместим в указанную строку

Set FSO = CreateObject("Scripting.FileSystemObject")

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

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

If UBound(Mas) + 1 >= iStrok Then
    Mas(iStrok - 1) = repTxt                    ' Заменяем нужный элемент массива (строку текста) заданной
    
    AllTxt = Join(Mas, vbCrLf)                  ' Консолидируем массив в строку для записи
    
    Set F = FSO.OpenTextFile(fName, 2, False)   ' Открываем исходный файл для записи
    F.Write AllTxt                              ' Записываем полученное на место исходного файла
    F.Close                                     ' Закрываем файл
End If

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


Последний раз редактировалось megaloman, 30-10-2011 в 15:49.

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

Отправлено: 08:44, 30-10-2011 | #7