Replace a string with another string in an XML file in VB.NET

  • Thread starter Thread starter Amritha.Datta
  • Start date Start date
A

Amritha.Datta

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.
 
Hello (e-mail address removed),
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>> said:
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.

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.
 
Back
Top