VB.net 将 2 个特定行导出到 DataGridView

VB.net exporting 2 specific lines to a DataGridView

我正在尝试读取文本文件的所有行并仅将 2 个特定行导出到 DataGridView。我的大部分代码都在工作,但是我 运行 遇到了数据并不总是在同一行的问题。

我正在使用 VB.net 这是我正在使用的代码。

Dim lines() As String = File.ReadAllLines(textfile)
For i As Integer = 0 To lines.Length - 1
    If lines(i).Contains("First*") Then
         Dim Array1() As String = lines(i).Split("*")
         Dim Array2() As String = lines(i + 1).Split("*")
         DataGridView1.Rows.Add(Array1(1), Array2(1))
    End If
Next

我需要做这样的事情,但我不确定怎么做。

Dim lines() As String = File.ReadAllLines("C:\People.txt")
For i As Integer = 0 To lines.Length - 1
    If lines(i).Contains("First*") Then
         Dim Array1() As String = lines(i).Split("*")
    End If
    If lines(i).Contains("Last*") Then
         Dim Array2() As String = lines(i).Split("*")
    End If
    DataGridView1.Rows.Add(Array1(1), Array2(1))
Next

我的 DataGridView 包含两列(名字、姓氏)。所以我正在做的是阅读所有行,当它遇到以 "First*" 开头的行时,它会收集名字,通常在该行下方是姓氏。我发现姓氏并不总是在其正下方,因此我还需要搜索包含 "Last*" 的行并将两者都添加到 DataGridView。我试图将每个人的名字和姓氏放入 DataGridView 中。

下面是文本文件的示例。

First*Bob
Last*Dole
Address*12 Way
Zip*00000
First*John
Middle*M
Last*Smith
Address*13 Way
Zip*00000

你可以看到第二个人我会得到错误的信息。感谢任何帮助。

这是我正在寻找的 DataGridView 结果。

FirstName | LastName
----------------------
Bob       | Dole
John      | Smith

您应该只从 If 块内部添加行以进行 "Last Name" 检查,并且您还需要从比示例中更高的范围存储名字变量。

此代码不执行错误检查:

Dim firstName As String = String.Empty
Dim lastName As String = String.Empty
For Each s As String In File.ReadAllLines("C:\People.txt")
  If s.Contains("First*") Then
    firstName = s.Split("*")(1)
  End If
  If s.Contains("Last*") Then
    lastName = s.Split("*")(1)
    dgv.Rows.Add(firstName, lastName)
  End If
Next