我正在尝试使用StreamReader将文本文件中的数据分成多个列表框。到目前为止,我已经能够将所有数据都存入 one 列表框,但是我的项目的下一步需要拆分数据,我认为我理解列表框比数组更好。我已经努力寻找类似的问题,但因为我是初学者,我发现的大部分内容让我更加困惑。我只能成功完成以下任务:
StreamReader file = new StreamReader(openFileDialog1.FileName);
string data;
while (!file.EndOfStream)
{
data = file.ReadLine();
listBox1.Items.Add(data);
}
file.Close();
我的.txt文件中的数据有三个块,如下所示:
blue
david
8042
red
joseph
7042
我无法更改数据格式,所以我一直试图以这样的方式编写代码
if (blue)
listBox1.Items.Add(david);
listBox2.Items.Add(8042);
else if (red)
listBox3.Items.Add(joseph);
listBox4.Items.Add(7042);
等。我只有两种颜色可供使用,但每种颜色都有很多数据。我的问题是,我不熟悉编码,也没有落实我已经学过的基础知识。
在StreamReads中,在行下方行中添加行 - 列表框时,缺少哪些代码行?我需要使用
吗?int counter = 0;
并将它增加1或2以获得这些线,或者我是否基本上考虑过?
非常感谢您的帮助。我觉得我错过了一些我还没有掌握的非常简单的东西。
答案 0 :(得分:0)
一种可能的出路是通过三行(即整个块)而不是一行来读取:
using (StreamReader file = new StreamReader(openFileDialog1.FileName)) {
while (!file.EndOfStream) {
string color = file.ReadLine();
string name = file.ReadLine();
string number = file.ReadLine();
if (color == "blue") {
listBox1.Items.Add(name);
listBox2.Items.Add(number);
}
else if (color == "red") {
listBox3.Items.Add(name);
listBox4.Items.Add(number);
}
}
}