In a failed attempt to teach my daughter programming I taught her to make this
Public Shared Function getBetween(strSource As String, startSearchIndex As Integer, startSearch As String, endSearch As String) As (nextIndex As Integer, Content As String)
Dim IndexStart = strSource.IndexOf(startSearch, startSearchIndex)
Dim startContent = IndexStart + startSearch.Length
Dim indexEnd = strSource.IndexOf(endSearch, startContent)
Dim content = strSource.Substring(startContent, indexEnd - startContent)
Dim nextIndex = indexEnd + endSearch.Length
Return (nextIndex, content)
End Function
We know what the function does. Get strings between 2 strings in a big string.
I wonder if there is a built in function for this?
Samples:
If I use this test function
Public Shared Sub test(txt As TextBox)
Dim source = "0123456789([012345])0123456789([ABCDEF])0123456789([GHIJK])"
txt.Text += source + System.Environment.NewLine
getBetween3Times(txt, source, "(", ")")
getBetween3Times(txt, source, "([", "])")
getBetween3Times(txt, source, "[", "]")
End Sub
Private Shared Sub getBetween3Times(txt As TextBox, source As String, startsearch As String, endsearch As String)
Dim result = getBetween(source, 0, startsearch, endsearch)
txt.Text += result.Content + System.Environment.NewLine
result = getBetween(source, result.nextIndex, startsearch, endsearch)
txt.Text += result.Content + System.Environment.NewLine
result = getBetween(source, result.nextIndex, startsearch, endsearch)
txt.Text += result.Content + System.Environment.NewLine
End Sub
It will produce
0123456789([012345])0123456789([ABCDEF])0123456789([GHIJK])
[012345]
[ABCDEF]
[GHIJK]
012345
ABCDEF
GHIJK
012345
ABCDEF
GHIJK