【问题标题】:While loop for StreamReader not working [closed]StreamReader的while循环不起作用[关闭]
【发布时间】:2014-06-06 20:41:35
【问题描述】:

Form 在内部停止工作。在while 中返回cursor to c=s.Substring...

StreamReader sr= new StreamReader("Unos.txt");
s = sr.ReadLine();
            c = s.Substring(s.IndexOf(',') + 2, (s.Length - s.IndexOf(',') + 2) - (s.Length - s.IndexOf('-') + 2));
            if ((String.Equals(cbRazred.SelectedItem.ToString(), c.Substring(0, (c.IndexOf('-')))) &&
                String.Equals(cbOdeljenje.SelectedItem.ToString(), odeljenje.ToString()))) lbSpisak.Items.Add(s.Substring(0, s.IndexOf(',')));
            while (s != null)
            {
                s = sr.ReadLine();
                c = s.Substring(s.IndexOf(',') + 2, (s.Length - s.IndexOf(',') + 2) - (s.Length - s.IndexOf('-') + 2));
                if ((String.Equals(cbRazred.SelectedItem.ToString(), c.Substring(0, (c.IndexOf('-')))) &&
                    String.Equals(cbOdeljenje.SelectedItem.ToString(), odeljenje.ToString()))) lbSpisak.Items.Add(s.Substring(0, s.IndexOf(',')));
            }
            sr.Close();

【问题讨论】:

  • 更少的细节和更多的代码会吸引反对票 ;)
  • 糟糕的标题也会吸引反对票。

标签: c# while-loop streamreader


【解决方案1】:

更好的使用:

while (!sr.EndOfStream)

检查您的 while 循环:

using (StreamReader sr = new StreamReader("Unos.txt"))
{
    while (!sr.EndOfStream)
    {
        s = sr.ReadLine();

        // make new checks on s because you're getting substrings and indexes that may not exist
        //e.g
        if (s.Length>=1)...
        //do you logic
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 2015-03-09
    相关资源
    最近更新 更多