我正在尝试读取文本文件的所有行,并将仅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] 删除。
我来说两句