View Single Post
 
Old 02-05-2016, 03:17 AM
PRA007's Avatar
PRA007 PRA007 is offline Windows 7 64bit Office 2010 32bit
Competent Performer
 
Join Date: Dec 2014
Location: Ahmedabad, Gujrat, India
Posts: 145
PRA007 is on a distinguished road
Default

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.
Reply With Quote