我正在为我的计算机科学计划进行测验,其想法是拥有关键词和定义。将向用户显示一个随机化的关键字和无线电按钮中的三个定义,其中一个必须是正确的答案。
我决定将我的关键字和我的定义放在同一个文件中:
Keyword1 = Definition1
Keyword2 = Definition2
Keyword3 = Definition3
等
在我的主表单上,我有以下循环:
For Each line As String In System.IO.File.ReadAllLines("my-file-path-here")
Dim Pair() As String = line.split("=")
LabelKeyword.text = Trim(Pair(0)) ' Needs Randomizing
RadioButtonDef1.text = Trim(Pair(1)) ' Needs randomizing
'RadioButtonDef2.text = 'Don't know needs randomizing
'RadioButtonDef3.text = 'Don't know needs randomizing
Next
我似乎无法弄清楚如何随机化关键字和定义。我的文本文件中还有15行,它似乎总是只读取最后一行。
所以我的问题是:
如何随机化关键字和定义,其中一个定义是当前关键字的答案。
为什么它只读取我文本文件的最后一行,如何解决?
我还需要能够在每个关键字与其定义两次匹配时才完成测验。他们所花的时间也需要在他们玩耍时进行记录。
答案 0 :(得分:1)
您正在遍历文本文件中的所有行,但是您在同一控件中显示所有这些行。因此,每次遍历循环时,它都会覆盖上一次迭代中控件中的值。我强烈建议将值存储在内存中的某种数据结构中。然后您可以随意随机访问这些值。例如,您可以将所有值存储在Dictionary
中,如下所示:
Dim dict As New Dictionary(Of String, String)()
For Each line As String In File.ReadAllLines("...")
Dim pair() As String = line.Split("=")
dict(pair(0)) = pair(1)
Next