【问题标题】:While loop isn't detecting first line of text file虽然循环没有检测到文本文件的第一行
【发布时间】: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);
                    }
                }
            }
        }
    }

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

    您正在阅读代码 listItemString = openStream.ReadLine(); 行中 while 循环之前的第一行。然后在第一次调用while ((listItemString = openStream.ReadLine()) != null) 时,您将在第一次循环迭代中覆盖此值。

    只删除循环之前的两行代码:

    listItemString = openStream.ReadLine();
    listItem = listItemString.Split(' ');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-02
      • 1970-01-01
      • 2015-05-08
      • 2014-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多