Vb.net 如何通过Visual Basic搜索txt文件中的数据

Vb.net 如何通过Visual Basic搜索txt文件中的数据,vb.net,Vb.net,我有一个包含以下信息的txt文件: 国家保险号;名称姓氏;工作时间;每小时的价格,因此: 例如:aa-12-34-56-a;彼得;史密斯;36;十二, 这些数据已经通过一个VB表单输入到txt文件中,这个表单工作得非常好,问题出现在另一个表单上。我希望它能做到这一点: 用户将在文本框中输入员工NI编号 然后,程序将搜索包含NI编号的文件,如果找到,则搜索 它将在相应的文本框中填入数据 (然后该程序计算税收和国民保险,我得到了工作罚款) 基本上,问题是告诉程序搜索NI编号,并将每个“;”分隔字段引

我有一个包含以下信息的txt文件:

国家保险号;名称姓氏;工作时间;每小时的价格,因此:

例如:aa-12-34-56-a;彼得;史密斯;36;十二,

这些数据已经通过一个VB表单输入到txt文件中,这个表单工作得非常好,问题出现在另一个表单上。我希望它能做到这一点:

  • 用户将在文本框中输入员工NI编号
  • 然后,程序将搜索包含NI编号的文件,如果找到,则搜索
  • 它将在相应的文本框中填入数据
  • (然后该程序计算税收和国民保险,我得到了工作罚款)

    基本上,问题是告诉程序搜索NI编号,并将每个“;”分隔字段引入相应的文本框


    谢谢大家。

    您只需像解析csv一样解析文件,您可以使用Microsoft.VisualBasic.FileIO.TextFieldParser或CSVHelper-

    我在过去使用过csv helper,它非常有效,它允许您使用数据文件中的记录结构创建一个类,然后将数据导入到这些记录的列表中进行搜索

    如果您想这样做,您可以在这里查看有关TextFieldParser的更多信息-

    不过我建议使用CsvHelper,文档非常好,与原始字符串数据相比,使用对象更容易

    找到记录后,可以手动设置表单上每个文本框的文本或使用bindingsource

    Dim afile As FileIO.TextFieldParser = New FileIO.TextFieldParser(FileName)
            Dim CurrentRecord As String() ' this array will hold each line of data
            afile.TextFieldType = FileIO.FieldType.Delimited
            afile.Delimiters = New String() {";"}
            afile.HasFieldsEnclosedInQuotes = True
    
            ' parse the actual file
            Do While Not afile.EndOfData
                Try
                    CurrentRecord = afile.ReadFields
                Catch ex As FileIO.MalformedLineException
                    Stop
                End Try
            Loop