如何逐行阅读文本文件 - 多项选择测验

时间:2014-03-10 03:25:57

标签: vb.net visual-studio

您好我真的需要一些帮助,我需要制作一个多选问题程序,从2个不同的文本文件(记事本文件)中读取问题和答案 但是当我尝试时,我似乎无法让它工作。我已经尝试过循环但是没有用,然后我尝试了数组,但是不符合阅读形式文本文件的要求

所以我来找你所有我需要帮助的是通过读取文本文件行然后在需要提出新问题时更新它

我不能逐行阅读(questions.txt),我需要匹配answers.txt中的问题然后我需要在点击下一个问题时更新它

VB.Net

我需要创建的程序必须执行以下操作

  • 问题和答案应分别从一个名为questions.txt和answers.txt的文件中加载

- 每次执行程序时,问题也应按随机顺序出现

下一个问题的更新表格

- 跟踪有多少问题是正确的

上述任何资源或教程都会非常感激

1 个答案:

答案 0 :(得分:1)

总编辑:198305769大声笑。清理答案,这应该让你几乎完成。欢呼声。

声明一个全局变量(整数);您可以在此处分配用户已回答的问题数量:

Public Class Form1
  Dim keepScore As Integer = 0

不是最新的,但它会将选定文本文件中的每一行附加到数组中,然后您可以遍历它。

   Dim ofd As New OpenFileDialog
    ofd.ShowDialog()
    Dim xstr = ofd.FileName

    Dim questions() As String = IO.File.ReadAllLines(ofd.FileName)
    Dim answers() As String = IO.File.ReadAllLines(ofd.FileName)

    Dim sw As New StringBuilder

    Dim i As Integer = 0
    Do Until i = questions.Count()
        sw.AppendLine(Trim(questions(i)))
           MsgBox(questions(i)) 'Only added this so you can see the lines
        i = i + 1
    Loop
    Do Until i = answers.Count()
        sw.AppendLine(Trim(answers(i)))
           MsgBox(answers(i)) 'Only added this so you can see the lines
        i = i + 1
    Loop

在此函数的末尾添加一个if语句:

If CorrectAnswer.Checked = True 'Assuming you are using a RadioButton Group, or CheckBox
   keepScore = keepScore + 1
End If

这是一个快速数字随机数,假设您有20个问题(相应地根据您提出的任何问题更改20个):

    Randomize()
    Dim i As Integer = CInt(Int(20 * Rnd() + 1))
    MsgBox(i)

祝你好运。