Hi,
I need to replace a string in an XML file. For that purpose I have
writtent he below code. It is working file for a small file say about
100 lines. But It failed and went to out of memory exception if I use
a bigger file. Please let me know if there is any alternate way of
doing it. I do have a file with 3 million records.
Please help.
Dim strFile As String = "C:\temp\TextXML"
Dim result As String
Dim reader As TextReader = File.OpenText(strFile)
result = Regex.Replace(reader.ReadToEnd, "</
NewDataSet><NewDataSet>", "XYZ")
reader.Close()
FileOpen(1, strFile, OpenMode.Output, OpenAccess.Write,
OpenShare.LockWrite)
'Writes the strDocument text to the file
FileSystem.Write(1, result)
'Closes the handle to the file, allowing all programs to edit
the file
FileClose(1)
Thanks.
Jesse Houwing - 17 Sep 2007 16:04 GMT
Hello Amritha.Datta@gmail.com,
> Hi,
>
[quoted text clipped - 10 lines]
> Dim reader As TextReader = File.OpenText(strFile)
> result = Regex.Replace(reader.ReadToEnd, "</
NewDataSet>> <NewDataSet>", "XYZ")
NewDataSet>>
> reader.Close()
> FileOpen(1, strFile, OpenMode.Output, OpenAccess.Write,
[quoted text clipped - 10 lines]
>
> Thanks.
If you're replacing a fixed string, you're better off using String.Replace
instead of Regex.Replace. My guess is that that will solve your problem.
As your files get larger and larger, you might need to write a parser that
can read the contents from a buffer instead of reading the whole file all
at once, but this should suffice for the forseable future.
--
Jesse Houwing
jesse.houwing at sogeti.nl