Thanks to a friend I was able to code a sub that opens a StreamReader and Writer. The Reader reads a *.txt file and the Writer modifies it line by line as it's entered into the memory then writes it to a temporary file which is then copied over the file that the Reader read.
The problem is that the StreamReader and Writer seem to fail to close.
At first when I tested it I would get an error stating:
Object reference not set to an instance of an object
I put breakpoints in the sub to figure out where it's erroring out and it's erroring out when it does sr.close() and sw.close() (Reader/Writer.close())
Here's the code for the sub. Maybe someone can tell me what I did wrong.
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If pDebugMessages = True Then MsgBox("Stream Reader/Writer initialized.", MsgBoxStyle.OkOnly, "Debug")
Try
Using sr As StreamReader = New StreamReader(ToolStripStatusLabel4.Text)
Using sw As StreamWriter = New StreamWriter(Environment.GetEnvironmentVariable("PUBLIC") & "\" & "TextReplacer\trtemp.txt")
Dim line As String
Do
line = sr.ReadLine()
If o1.Text = "Replace" Then
line.Replace(str1.Text, a1.Text)
End If
sw.WriteLine(line)
Loop Until line Is Nothing
sr.Close()
sw.Close()
End Using
End Using
Catch ex As Exception
If pDebugMessages = True Then MsgBox("An error has occured attempting writing.", MsgBoxStyle.OkOnly, "Debug")
MsgBox(ex.Message)
End Try
Dim orig As String = Environment.GetEnvironmentVariable("PUBLIC") & "\" & "TextReplacer\trtemp.txt"
Dim temp As String = ToolStripStatusLabel4.Text
Try
File.Delete(temp)
File.Copy(orig, temp)
Catch ex As Exception
If pDebugMessages = True Then MsgBox("An error has occured while attempting to write.", MsgBoxStyle.OkOnly, "Debug")
MsgBox(ex.Message)
End Try
Try
Dim r As IO.StreamReader
txtfile.Items.Clear()
r = New IO.StreamReader(ToolStripStatusLabel4.Text)
While (r.Peek() > -1)
txtfile.Items.Add(r.ReadLine)
End While
r.Close()
If pDebugMessages = True Then MsgBox("File reloaded succesfully.", MsgBoxStyle.OkOnly, "Debug")
Catch ex As Exception
MsgBox(ex.Message)
If pDebugMessages = True Then MsgBox("An error has occured while attempting to reload the file.", MsgBoxStyle.OkOnly, "Debug")
End Try
End Sub
I've been stuck trying to figure out why it's erroring out for days, but I haven't figured it out.
Thanks.