将文本文件转换为二维数组(使用逗号消除器)VB.NET
我疯狂地想知道怎么做。我需要看一看我为测验程序设计的文本文件——一行一行(一行有两部分,用逗号分隔)回答问题(第一部分)和布尔答案(第二部分)。即,文本文件中的一行如下所示:将文本文件转换为二维数组(使用逗号消除器)VB.NET,vb.net,Vb.net,我疯狂地想知道怎么做。我需要看一看我为测验程序设计的文本文件——一行一行(一行有两部分,用逗号分隔)回答问题(第一部分)和布尔答案(第二部分)。即,文本文件中的一行如下所示: You have 10 fingers,true you have 10 toes,true you have 2 thumbs,true 我只需要能够将其转换为一个数组,这样我就可以访问命令中的元素,例如(0,0)会在文本框中显示第一个问题,我会将用户的答案(以真或假的形式)引用到(0,1)中,我会使用计数器来计算正确
You have 10 fingers,true
you have 10 toes,true
you have 2 thumbs,true
我只需要能够将其转换为一个数组,这样我就可以访问命令中的元素,例如(0,0)会在文本框中显示第一个问题,我会将用户的答案(以真或假的形式)引用到(0,1)中,我会使用计数器来计算正确答案的数量。在用户回答第一个问题后,我可以循环到第二个问题,以显示在数组中,依此类推。虽然可能有更高级的方法来实现这一点,但在这种情况下,我需要使用流读取器
我发现我可以通过以下方式将一行读入数组:
dim line() as string = io.file.readalllines("C:\data.txt")
dim value(2) as integer
value = line.split(","c)
但我需要访问每一行,以及他们的答案,一次一个。如果我能将文本文件放入一个二维数组中,我就可以简单地访问命令中的每个元素。帮助:)
任何帮助都将不胜感激 我建议使用适当的类来处理您的数据。例如,您可以编写一个名为QA的类来存储问题文本和答案的布尔值
Public Class QA
Public Question as String
Public Answer as Boolean
End Class
您可以使用file.ReadLines或使用StreamReader类读取文件
Sub Main
' A list of QA objects loaded from file
Dim qaList as New List(Of QA)()
Using sw = new StreamReader("C:\data.txt")
Dim line as String
Do
line = sw.ReadLine()
If line Is Nothing Then Exit Do
Dim parts() = line.Split(","c)
' Initialize a new QA object and add it to the list
qaList.Add(new QA() _
With
{
.Question = parts(0),
.Answer = Convert.ToBoolean(parts(1))
})
Loop
End Using
现在,您可以使用(QA)列表作为数组,使用索引器引用元素
Console.WriteLine(qaList(0).Question)
Console.WriteLine(qaList(0).Answer)
End Sub
只需对每个循环使用
。