Тема: VBS Запись в текстовый файл строки с произвольным номером
Для одного небольшого проекта была сделана такая функция:
Function TXTwrite(LineN, strTP) ' Номер строки и сама строка для записи
On Error Resume Next
Set WshShell = CreateObject("WScript.Shell")
path = WshShell.CurrentDirectory + "\"
Set objFS = CreateObject("Scripting.FileSystemObject")
writDO=""
writPOS=""
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objTS = objFS.OpenTextFile(Path+"flm.tmp", 1) ' Файл flm.tmp содержит набор записей с разделителем |
ks=0
LineN=CLng(LineN)
Do Until objTS.AtEndOfStream
ks=ks+1
if ks<LineN then writDO=writDO+objTS.Readline & VbCrLf
if ks=LineN then
Str=objTS.ReadLine
strArr=Split(str,"|",-1,1)
writITM=strArr(0)&"|"&strArr(1)&"|"&strArr(2)&"|"
End If
if ks>LineN then writPOS=writPOS+objTS.Readline & VbCrLf
loop
objTS.close
Set objTS = objFS.OpenTextFile(Path+"flm.tmp", 2)
objTS.Write writDO &Left(writITM,len(writITM)-1) &"|" &strTP & VbCrLf & writPOS ' Содержимое файла ДО искомой строки + нужная нам строка + содержимое файла после
objTS.close
TXTwrite=0
End FunctionЕсли работать с файлом на 20-30 строк то все красиво. Но тут понадобилось делать тоже самое с файлом в 12000 строк и стало все совсем медленно.
Вопрос: как еще можно решить подобную задачу, чтобы работало пошустрее ![]()

