在Visual Basic中搜索文本文件的每一行

时间:2014-04-04 21:01:07

标签: vb.net

我有一个文本文件,每次都会动态更新,每行都有一串文字。我想要的是一个VB脚本,它将搜索每一行,看它是否包含“abc”。可能会有前后角色,所以我需要一个像“ abc ”这样的通配符。情况也不重要。我不是很熟悉VB,而且刚学会在工作中做一个小项目。

所以基本上,我需要像

这样的东西

如果file.txt中的任何行包含“ abc ”,则发送电子邮件。我已经有了发送工作正常的电子邮件的代码。

我还希望对此更加复杂,并执行类似

的操作

如果file.txt中的任何行包含file2.txt中的任何行(具有与上面相同的通配符要求。所以file2.txt中的任何行都需要在行的开头和结尾使用通配符)然后发送一封电子邮件。

file2.txt将是一个手动更新的文件,以便在file.txt中包含更多要搜索的项目,这样我就不必每次都重写脚本以包含另一个搜索字符串。

2 个答案:

答案 0 :(得分:1)

Dim file1() As String = File.ReadAllLines("Path to file 1")
Dim file2() As String = File.ReadAllLines("Path to file 2")

Dim results As IEnumerable(Of String) = file1.Where(Function(f1) file2.Where(Function(f2) f1.Contains(f2)))

For Each item As String in Results
    '...
Next item

答案 1 :(得分:0)

对于你正在做的事情的第一部分,这可能是一个过于简化的例子,但如果你查看它正在使用的东西,你可以用它来完成其余部分......

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim sFileContents As String = String.Empty
        If System.IO.File.Exists("C:\temp\Info.txt") Then
            sFileContents = System.IO.File.ReadAllText("C:\temp\Info.txt")
        End If
        If sFileContents.Contains("asbsc") Then
            MessageBox.Show("yup")
        Else
            MessageBox.Show("nope")
        End If
    End Sub