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

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.
 
J

Jesse Houwing

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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,065
Latest member
OrderGreenAcreCBD

Latest Threads

Top