2017-07-10 78 views
0

我是VB.net的新手,我需要幫助。我想要做的是在文本文件中找到某一行,並在文本框中顯示下一行。隨着第一部分(發現線)我做得很好,但我正在努力與第二部分顯示在我找到的那一行之後的行!閱讀文本文件中的某一行並顯示下一個

這裏是我使用的測試文件的內容:

**SCREENSHOT OF THE TEXT FILE**

這是我迄今所做的:

Using sReader As New StreamReader("filepath") 

     While Not sReader.EndOfStream 
      Dim line As String = sReader.ReadLine() 
      If line.Contains("123") Then 
       TextBox1.Text = line 
      End If 
     End While 

    End Using 

接收到的結果:

**HERE IS A SCREENSHOT OF MY OUTPUT**

+0

如果你想顯示的下一行,那麼解決方案可能是:'如果sReader.EndOfStream = false,那麼Textbox1的。 Text = sReader.ReadLine()' – muffi

+0

感謝答覆muffi。所以你的意思是,而不是有一個while循環,我應該只有if語句? –

+1

不,請使用If - 語句而不是'Textbox1.Text = line'! – muffi

回答

2
While Not sReader.EndOfStream 
    Dim line As String = sReader.ReadLine() 
    If line.Contains("123") AndAlso Not sReader.EndOfStream Then 
     Dim nextLine As String = sReader.ReadLine() 
     TextBox1.Text = nextLine 
     Exit While 
    End If 
End While 

隨着LINQ的完整代碼可以由更可讀:

Dim nextLineAfterMatch = File.ReadLines("filepath"). 
    SkipWhile(Function(line) Not line.Contains("123")). 
    Skip(1). 
    FirstOrDefault() 

If nextLineAfterMatch IsNot Nothing Then TextBox1.Text = nextLineAfterMatch 
+0

非常感謝Tim的回答!正是我在找什麼!保重伴侶:) –

相關問題