Imago_
23-06-2015, 16:42
Задача (возможно смешная)
есть код - вставляет в текстовый файл в 12 строку переменное значение (переменная из батника), vbs находится в той же папке где и изменяемый файл.
fName = "A_polyS.txt" ' Где текстовый файл
iStrok = 12 ' В какой строке меняем текст
Set objArgs = WScript.Arguments ' прием и обозначение переменной из батника
repTxt = objArgs(0) ' Какой текст поместим в указанную строку
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
Файл "тяжелый" - от 100 до 450 Мб, теперь их несколько - нужен обход по маске расширения, причем во все файлы переменная вставляется в 12 строку, а в одном из файлов file_Layer.txt- та же переменная вставляется в 11 строчку (12 строка без изменений)
Спасибо.
есть код - вставляет в текстовый файл в 12 строку переменное значение (переменная из батника), vbs находится в той же папке где и изменяемый файл.
fName = "A_polyS.txt" ' Где текстовый файл
iStrok = 12 ' В какой строке меняем текст
Set objArgs = WScript.Arguments ' прием и обозначение переменной из батника
repTxt = objArgs(0) ' Какой текст поместим в указанную строку
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
Файл "тяжелый" - от 100 до 450 Мб, теперь их несколько - нужен обход по маске расширения, причем во все файлы переменная вставляется в 12 строку, а в одном из файлов file_Layer.txt- та же переменная вставляется в 11 строчку (12 строка без изменений)
Спасибо.