如何获取包含字符串的整行文本

时间:2013-02-22 18:30:13

标签: vb.net visual-studio-2010

我想问一件事。如何在Visual Basic 2010中获取包含字符串的整行文本?

让我们说:

MyText.txt文件包含:

Configurations: 
Name: Fariz Luqman
Age: 78
My Favourite Fruit: Lemon, Apple, Banana
My IPv4 Address: 10.6.0.5
My Car: Ferrari

在Visual Basic中,我希望获得包含字符串“ Banana ”的整行文本,并将其打印在文本框中,以便它显示在该文本框中:

My Favourite Fruit: Lemon, Apple, Banana

为什么我这样做?因为正在追加文本文件并且行号是随机的。内容也是随机的,因为文本是由Visual Basic生成的。文本“香蕉”可以在第1行,第2行或者可以在任何行中,那么如何获得包含特定字符串的整行文本?

提前谢谢!

2 个答案:

答案 0 :(得分:6)

您可以使用LINQ轻松完成所有操作:

TextBox1.Text = File.ReadAllLines("MyText.txt").FirstOrDefault(Function(x) x.Contains("Banana"))

但是,如果文件相当大,那不是特别有效,因为它会在搜索行之前将整个文件读入内存。如果你想让它在找到该行后停止加载文件,可以使用StreamReader,如下所示:

Using reader As New StreamReader("Test.txt")
    While Not reader.EndOfStream
        Dim line As String = reader.ReadLine()
        If line.Contains("Banana") Then
            TextBox1.Text = line
            Exit While
        End If
    End While
End Using

答案 1 :(得分:2)

刚刚检查过(应该先完成!)。 VB.Net确实有一个CONTAINS()方法。所以:

IF line1.Contains("Banana") THEN
   'do something
END IF