I want to make multiple regex find and replace in the rtf text so to extract some information. as I want to play with text and not the rtf as opened in word I am using fso.
This is the code sniplet:
Code:
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
The problem is
If you see the code, You will notice that I am saving the string first as file and opening the same for reading again. Is there anyway we can extract lines containing specific string from string so as to avoid it saving.