2013-02-22 106 views
2

有一件事我想問。如何獲取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中,我想要得到文本的整條生產線包含字符串「香蕉」,並打印在文本框所以它將顯示在該文本框中:

My Favourite Fruit: Lemon, Apple, Banana 

爲什麼我要這樣做?由於正在追加文本文件,並且行號是隨機的。內容也是隨機的,因爲文本是由Visual Basic生成的。文本「香蕉」可以在第1行,第2行或可以在任何行,所以我怎麼能得到包含某些字符串的整行文本?

預先感謝您!

+0

我VB.Net生鏽,但是C#有一個contains()方法。檢查VB.Net是否有類似的東西。然後你可以循環使用適當的方法。 IF linex.Contains(「Banana」)) //然後對該行做些什麼 – Melanie 2013-02-22 19:00:21

+0

確實!但我喜歡簡單的視覺基礎,而我的可愛項目幾乎完成了98%! – 2013-02-22 19:10:06

回答

4

您可以輕鬆地在同一個符合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

嗨!感謝你的回答!它有錯誤「現在定義StreamReader」,但修復使用reader作爲新的StreamReader(「Test.txt」)使用reader作爲新的** IO **。StreamReader(「Test.txt」)的工作原理! :D – 2013-02-22 19:14:09

+0

是的,我的示例假定您的代碼文件頂部有'Imports System.IO'這一行。爲了簡潔,通常人們在本網站的例子中省略了命名空間。 – 2013-02-22 19:37:53

+0

謝謝!我接受它作爲答案! 祝你有美好的一天:) – 2013-02-22 19:48:18

2

剛剛檢查過(應該先這樣做!)。 VB.Net確實有一個CONTAINS()方法。所以:

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

所以我可以在我的其他控件上使用它!感謝隊友的答案! – 2013-02-22 19:21:20

+0

我其實不是配偶,我猜我是個matette? :)無論如何,很高興你發現我的答案有用。 – Melanie 2013-02-22 20:46:57

+0

酷!我只知道我可以在其他控件如文本框中使用它,例如「If txtStatus.Text.Contains(」「)Then ....」。如果我有15代表我會投票已經xD有一個愉快的一天,感謝您花時間回答:) – 2013-02-22 22:47:24

相關問題