Vb.net 检查文本文件中的每一行是否包含某个字符串,并将该字符串添加到列表框中?

Vb.net 检查文本文件中的每一行是否包含某个字符串,并将该字符串添加到列表框中?,vb.net,Vb.net,下面的代码可以工作,只需将每一行作为列表框中的一行 Reader = IO.File.OpenText(textlocation) Dim bookmarks() As String = Reader.ReadToEnd.Split(vbNewLine) Dim i As Integer = 0 Do Until i = bookmarks.Length lstFavorites.Items.Add(bookmarks(i)) i += 1 Loop 但我不希望每一行都进入文本框。我

下面的代码可以工作,只需将每一行作为列表框中的一行

Reader = IO.File.OpenText(textlocation)
Dim bookmarks() As String = Reader.ReadToEnd.Split(vbNewLine)
Dim i As Integer = 0

Do Until i = bookmarks.Length
  lstFavorites.Items.Add(bookmarks(i))
  i += 1
Loop
但我不希望每一行都进入文本框。我只希望包含文本“Bookmark”的行进入列表框。我能做些什么来实现这一点?我已经尝试了我能想到的一切

这里有一些我试过的代码,我看不出其中的问题,但它似乎只是使我的程序崩溃

Do Until i = bookmarks.Length
  If bookmarks(i).Contains("at") Then
    If radBookmarks.Checked Then
      If bookmarks(i).Contains("Bookmark") Then
        Original = bookmarks(i)
        BeginningOfDemoName = Original.Substring(Original.LastIndexOf("(") + 2)
        TickWithParenthesis = BeginningOfDemoName.Substring(BeginningOfDemoName.IndexOf(Chr(34)) + 4)
        Tick = TickWithParenthesis.Split(" ")(1).Split(")")(0)
        DemoName = BeginningOfDemoName.Split(Chr(34))(0)
        ToList = DemoName + " at " + Tick
        lstFavorites.Items.Add(ToList)
        i += 1
      Else
        i += 1
      End If
    ElseIf radEverything.Checked Then
      Original = bookmarks(i)
      BeginningOfDemoName = Original.Substring(Original.LastIndexOf("(") + 2)
      TickWithParenthesis = BeginningOfDemoName.Substring(BeginningOfDemoName.IndexOf(Chr(34)) + 4)
      Tick = TickWithParenthesis.Split(" ")(1).Split(")")(0)
      DemoName = BeginningOfDemoName.Split(Chr(34))(0)
      ToList = DemoName + " at " + Tick

      lstFavorites.Items.Add(ToList)
      i += 1
    End If
  End If
Loop

试着改变这一行

 If bookmarks(i).Contains("Bookmark") Then


Contains执行区分大小写的比较,并且您的输入字符串包含小写的“bookmark”

在您的代码中,有许多假设不可能成立。例如,如果某个字符串不包含开括号,会发生什么情况?。您不检查
LastIndexOf
的结果。与此类似,在代码的其他部分中,您理所当然地认为某个操作不会失败,并将其结果作为另一个操作的输入传递。顺便问一下,您是否可以添加一些试图解析的示例文本?每行代码如下:[2013/01/15/21:45]Kill Streak:4(“cp_badlands_RED_BLU 01152013_2142”,第10656页)[2013/01/19/18:00]玩家书签(“cp_badlands_RED_BLU_01192013_1746”,55811)因此,在循环结束时,如果您检查lstFavorites.Items.Count,您会得到零?在崩溃之前,它甚至不会到达循环结束。不会出现异常崩溃或任何情况。它只是变得没有响应。
 If bookmarks(i).IndexOf("Bookmark", 
                 StringComparison.CurrentCultureIgnoreCase) >= 0 Then