Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将文本文件转换为二维数组(使用逗号消除器)VB.NET_Vb.net - Fatal编程技术网

将文本文件转换为二维数组(使用逗号消除器)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

只需对每个循环使用