如何通过Visual Basic在文本文件中搜索数据

时间:2014-03-12 00:05:13

标签: vb.net

我有这个txt文件,其中包含以下信息:

National_Insurence_Number;姓名;姓氏; Hours_Worked; Price_Per_Hour so:

例如:aa-12-34-56-a; Peter; Smith; 36; 12

这个数据已经通过VB形式传输到txt文件,它完全没问题,问题来自另一种形式。这是我期望它做的:

  1. 用户将输入员工NI号码的文本框。
  2. 程序将搜索NI编号的文件,如果找到;
  3. 它将使用其数据填写相应的文本框。
  4. (然后程序计算我工作正常的税和国民保险)

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

    谢谢大家。

1 个答案:

答案 0 :(得分:0)

您只需要像csv一样解析文件,您可以使用Microsoft.VisualBasic.FileIO.TextFieldParser执行此操作,也可以使用CSVHelper - https://github.com/JoshClose/CsvHelper

我过去使用过csv helper并且效果很好,它允许你创建一个具有数据文件中记录结构的类,然后将数据导入到这些列表中以供搜索。

如果你想这样,你可以在这里查看有关TextFieldParser的更多信息 - Parse Delimited CSV in .NET

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

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

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