Sometimes you don't have control over how the data is saved to a text file. For instance, some items might be saved with quotation marks around words or phrases. If you want to read the file but not show these marks then you'll need a way to remove them.
Like a lot of things, it's actually very easy when you know how. You can use the built-in Replace function of the String class, replacing the marks as you find them. The trick though (and to my mind, the less than totally intuitive bit) is knowing how many quotation marks to use in the first argument of the Replace method's parameters. This is the 'OldChar' parameter, i.e the one you want to replace.
You would think, wouldn't you, that you could put a Quotation Mark inside a pair of Quotation Marks like this:-
MyString.Replace(""", "")
But if you try that, you will find that it doesn't work. What you actually have to do is include a second Quotation Mark inside the outside ones. In other words, you need four Quotation Marks in a row.
MyString.Replace("""", "")
It's only a tiny change, but it will move your mental state from annoyed confusion to enlightened contentment. Or something like that, anyway.
So putting this together with code that reads from a file and displays the result (minus Quotation Marks) in a ListBox, you have:
Private Sub RemoveQuotes(ByVal filename As String, ByVal target As ListBox)
' A StreamReader to fetch the data
Dim sr As New IO.StreamReader(filename)
' A string to hold each line as it is read
Dim line As String = String.Empty
' Read from the file
' As long as there is something left to read
Do While sr.Peek <> -1
' Replace the Quotation Marks with Nothing
line = sr.ReadLine.Replace("""", "")
' Add edited text to a ListBox
target.Items.Add(line)
Loop
' Tidy up when finished
sr.Close()
sr = Nothing
End Sub
If you prefer your code to be broken down into clearer steps, you could do this instead:
Private Sub RemoveQuotes(ByVal filename As String, ByVal target As ListBox)
' A StreamReader to fetch the data
Dim sr As New IO.StreamReader(filename)
' A string to hold each line as it is read
Dim line As String = String.Empty
' Read from the file
' As long as there is something left to read
Do While sr.Peek <> -1
' Read the next line
line = sr.ReadLine
' Replace the Quotation Marks with Nothing
line = line.Replace("""", "")
' Add edited text to a ListBox
target.Items.Add(line)
Loop
' Tidy up when finished
sr.Close()
sr = Nothing
End Sub
Either way, your quotation marks will be history.