2017-01-01 61 views
0

我有一个文本文件,其中包含一个问题和答案的测验。如何将文本文件中的拆分文本串入文本框并更改单选按钮的文本?

m1 | mcq | Which of the following is an animal | table#cat#keyboard#water 

m2 | mcq | which of the following is a programming language |C++#water#Air#Phone 

m3 | mcq | which is the prime number | 3#4#8#10 

我已经尝试在一个文本文件中的文本或字符串分割成一个文本框,例如,下列哪项是动物

这是我的代码:

try 
{ 
    ReadQuestionTextBox.Text = File.ReadAllText("C:\\Users\\ip700\\Documents\\Visual Studio 2015\\Projects\\FYP Project\\FYP Project\\bin\\Debug\\RichTextBox.txt"); 
} 
catch 
{ 
    ReadQuestionTextBox.Text = "Could not read file"; 
} 

我试图通过使用更复杂的字符串分割部分来进一步,我可以在文本文件中确定文本的位置,其中文字如

以下哪项是动画人?进入文本框,我的答案选项分为4个单选按钮,table#cat#keyboard#water

我糊涂了有关如何继续作为我还是新的C#WPF

关于字符串分割,我知道如何一行在文本文件中的文本分割成一个列表框。

+0

欢迎来到SO。由于您的问题现在很难理解您所要求的内容。因为当我现在阅读你的问题时,好像你在要求我们为该文本文件中的格式编写解析器。这不是什么意思。那么你可以编辑你的问题,这样它就变得更具体到你要求的东西了吗? –

+0

哦,对不起。这个标题好吗? – NaviHam

+0

如何将文本文件中的拆分文本串入文本框并更改单选按钮的文本? – NaviHam

回答

0

您需要将文件的内容读入变量,而不是文本框本身。

string[] lines = File.ReadAllLines("filename"); 

如果你的文件的每一行是一个新问题,则字符串数组中的每个元素将持有的问题进行解析。

然后解析每个问题,你可以遍历数组并再次使用字符串拆分。以下是您如何使用其选项设置一个问题的方法。

string[] line = lines[0].Split("|", split options); 
string question = line[2].Trim(); 
string[] options = line[3].Split("#", split options); 

串分割选项可以是StringSplitOptions.RemoveEmptyEntries其从阵列中移除空条目或StringSplitOptions.None其保留它们。

然后,您可以遍历选项并为每个选项创建并添加一个新的单选按钮到表单。

它看起来不像你的文本文件包含问题的答案,所以你可能想补充一点。

+0

我是否需要指定文件名路径? – NaviHam

+0

是的。它与您使用的方法(ReadAllText)的工作方式相同,但不是将文件作为一个字符串读入其中,而是将该文件中的每一行与文件中的每一行都读入数组中的一个新元素。 –

+0

分割选项是什么意思?我从来没有在 – NaviHam