VB.net将2条特定行导出到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-Block内部添加用于“姓氏”检查的行,并且还需要从比示例更高的范围中存储名字变量。

此代码不执行错误检查:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章