2013-02-22 104 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

相关问题