【发布时间】:2016-10-30 18:33:25
【问题描述】:
我有一个程序可以加载文本文件以填充表单中的两个单独的列表框。它应该读取每一行,并将每一行添加到一个列表框中。由于某种原因,文本文件的第一行被忽略了,我不确定为什么。
这是文本文件的每一行:
- cd Armor 1 True+
- bg 工具 2 错误+
- o 武器 3 错误-
- xz Consumable 1 True-
我相信我的 while 循环是问题所在,但我不确定我做错了什么。我需要程序循环不止一行。当我在不使用循环的情况下运行代码时,文本文件的第一行被添加到相应的列表框中,没有任何问题。
下面的代码附在我的表单中的加载按钮上。
private void loadToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog openTextFile = new OpenFileDialog();
openTextFile.Filter = "Text Files (*.txt) | *.txt";
string listItemString;
string[] listItem;
if (openTextFile.ShowDialog() == DialogResult.OK)
{
using (StreamReader openStream = new StreamReader(openTextFile.OpenFile()))
{
listItemString = openStream.ReadLine();
listItem = listItemString.Split(' ');
while ((listItemString = openStream.ReadLine()) != null)
{
if (listItemString.EndsWith("+"))
{
listItemString = listItemString.Replace("+", "");
cart.Items.Add(listItemString);
}
else if (listItemString.EndsWith("-"))
{
listItemString = listItemString.Replace("-", "");
delivery.Items.Add(listItemString);
}
}
}
}
}
【问题讨论】: