Я получаю Thing с помощью этого кода.Как извлечь строки из строки
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Dim fso, FileName, TextLine, Tempfile, inTempfile, strPath, Temp, intemp
FileName = "C:\Users\rahul\Desktop\PLR\1.rtf"
TempFile = "C:\Users\rahul\Desktop\PLR\Temp\1.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Set inFile = fso.OpenTextFile(FileName)
Do While inFile.AtEndOfStream <> True
TextLine = inFile.ReadAll
Loop
Set regEx_ = new regExp
With regEx_
.Global = True
.MultiLine = True
.IgnoreCase = True
.Pattern = "\{\\\w{4}\\\w{4}\\\w{11}"
TextLine = regEx_.replace(TextLine, "mmrk$&")
'many such find and replace to get IMP lines Having mmrk
End with
set Temp = fso.CreateTextFile(TempFile, True)
Temp.Write TextLine
Temp.Close
Set Temp = Nothing
Set intemp = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\Users\rahul\Desktop\PLR\Temp\1.txt")
Set outFile = CreateObject("Scripting.FileSystemObject").CreateTextFile("C:\Users\rahul\Desktop\PLR\Temp\11.txt",True)
Do Until intemp.AtEndOfStream
Dim line : line = intemp.Readline
If Left(line, 4) = "mmrk" then outFile.writeLine(line)
Loop
intemp.Close
outFile.Close
inFile.Close
Это работает нормально. У меня такое ощущение, что это неправильно. Как правильно сделать этот код.
Проблема заключается в том
Если вы видите код, вы заметите, что я спасаю строку первой в файл и открыть то же самое для чтения снова. В любом случае мы можем извлечь строки, содержащие определенную строку из строки, чтобы избежать ее сохранения.
Edit 2
Позвольте мне сузить проблему на этапе, когда я получаю ошибку.
Шаг 1. Откройте файл для чтения и получите текст как строку. Работа OK
Шаг 2. Несколько регулярных выражений Найдите и замените строку. Рабочий ОК
Шаг 3. Извлеките линии из строки, имеющей Left (line, 4) = "mmrk", чтобы получить желаемые строки в виде строки. Не работает
Шаг 4. Дальнейшие технологические линии, чтобы получить окончательную строку, содержащую нужные строки. - будут работать, если работает шаг 3. (Это фактически работает для гипотетического примера)
Шаг 5. Напишите строку в файл. Буду работать, если шаг 3 работы (работает на гипотетический пример
Как сделать из файла ответ here.
См. Команду 'split'. Он может разбивать строку на массив строк, разбитых на любой символ, включая Chr (13). 'Фильтр' может создавать массив в строке поиска из другого. См. Справка VBS (https://www.microsoft.com/en-au/download/details.aspx?id=2764) –