VB.NET从指定文件夹的多个文本文件中获取特定字符串

VB.NET从指定文件夹的多个文本文件中获取特定字符串,vb.net,file,Vb.net,File,我今天刚开始学习VBnet 情况如下: 我有一个文件夹,其中包含名为data1 data2等的文本文件(大约100个) 每个文件都包含一个序列号: 例如: 在data1.txt中 HSB1序列号111222 在data2.txt中 HSB1序列号987632 等等 我制作了一个VB.Net程序,允许用户使用FolderBrowserDialog指定txt文件的文件夹位置 我不知道的是如何只在文本框中显示序列号 该命令应该在我单击execute按钮时执行。提前谢谢 到目前为止,这是我所拥有的,我很

我今天刚开始学习VBnet

情况如下:

我有一个文件夹,其中包含名为data1 data2等的文本文件(大约100个)

每个文件都包含一个序列号:

例如:

在data1.txt中

HSB1序列号111222

在data2.txt中

HSB1序列号987632

等等

我制作了一个VB.Net程序,允许用户使用FolderBrowserDialog指定txt文件的文件夹位置

我不知道的是如何只在文本框中显示序列号

该命令应该在我单击execute按钮时执行。提前谢谢

到目前为止,这是我所拥有的,我很抱歉,我对这个非常陌生,但我必须尽快制定这个计划

公开课表格1

  Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim folderDlg As New FolderBrowserDialog
    folderDlg.ShowNewFolderButton = True
    If (folderDlg.ShowDialog() = DialogResult.OK) Then
        TextBox1.Text = folderDlg.SelectedPath
        Dim root As Environment.SpecialFolder = folderDlg.RootFolder
    End If
End Sub

Private Sub SaveFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles SaveFileDialog1.FileOk

End Sub

Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

End Sub

Private Sub Execute_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Execute.Click

End Sub

End Class

如果您的文件只有一行文本,并且每行的格式都与上面的说明相同,则此示例应该可以使用

Dim fileList = Directory.GetFiles(TextBox1.Text, "*.txt", false)
Dim sb = New StringBuilder()
For Each fileName in fileList
    Dim lines = File.ReadAllLines(fileName)
    if lines.Length > 0 then
        Dim part = lines[0].Split(" "c)
        if part.Length > 2 Then
            sb.AppendLine(part(3))
        End If
    End If
Next
TextBox2.Text = sb.ToString()
TextBox2是要显示搜索结果的文本框。它应该将其属性MultiLine设置为True,并设置一个垂直滚动条(使用设计器进行设置)


代码使用了一些静态方法,如和File。和一个类的实例来缓冲所有读取,只需在目标文本框中添加一个附件

如果文件名和序列号的模式与您在问题中给出的相同,则此代码应该可以工作

  Private Sub Execute_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Execute.Click

     For Each xFile In Directory.GetFiles(TextBox1.Text, "*.txt", false)
         'Textbox2 is the resultant textbox.
         TextBox2.Text &= space(2) & File.ReadAllLines(xFile)(0).Substring(File.ReadAllLines(xFile)(0).Length - 6, 6)
     Next

    End Sub

编辑根据您的评论:
我给出的只是第一行。

每个文件只包含一行数据,每行的格式如上所述?我很抱歉添加这一点,但在文本文件中它包含了更多的信息。我给的只是第一行。我需要获取更多字符串,如时间、句子等。序列号与该文件中的其他文本进行比较时是否具有任何特定标识。我已在我的系统中测试了此代码,它正在按预期运行,您呢?您是否在您的环境中对此进行了测试?:)那个错误是什么意思。?无论是运行时错误还是编译时错误。?