private void Combobox1_LostFocus(object sender, EventArgs e)
        {
            string i;
            int j;
            j = 1;
            while (j != 0)
            {
                j++;
                i = num1.Text;
                if (i != "")
                {
                    StreamWriter sw;
                    i = num1.Text.ToString();
                    sw = File.AppendText("\\number.txt");
                    sw.WriteLine(i);
                    sw.Close();
                    if (j == 1)
                    {
                        break;
                    }
                }
                else
                {
                    MessageBox.Show("请输入正确的车号!");
                    break;
                }
            }
        }
在ce5.0下运行,总是死循环,请指点下,每次再Combobox里写如数据导入到.txt文件中都会无限写入,请指点该怎么修改,谢谢~!

解决方案 »

  1.   

    j==1永远都不会发生,永远一直执行while啊
      

  2.   


                        if (j == 1) 
                        { 
                            break; 
                        } 改为:break;
      

  3.   

    还有个方法是把   if (j == 1)   
                        {   
                            break;   
                        }   
    改成
       if (j == 2)   
                        {   
                            break;   
                        }   
      

  4.   

    6楼的if(j==2)这个我用过了,不行,循环没死,但是写不进去数据;3楼的也用过了,同样的问题,可以确认的是程序进到if(i!=“”)这里了,我在这messagebox.show();出来了,请教下,怎么写?
      

  5.   

    i = num1.Text;
    i肯定只能有一个值,就是num1.Text
    为什么还要用循环?
      

  6.   

    我是想实现在combobox的text里输入数据,之后把输入的数据添加到number.txt中,如果txt文件中已存在输入项的话就不添加,如果不存在就添加 ,这段代码只是把数据写入txt,每次失去光标都执行一次写入,所以加循环,请教下“如果txt文件中已存在输入项的话就不添加,如果不存在就添加 ”这怎么写?谢谢,还有,上面哪段代码我刚才运行起来是能写入,但是第一次写的东西失去光标后不能写入,2,3,4……次都能正常写入,是怎么回事?谢谢
      

  7.   

    楼主,真的不是循环问题是逻辑问题建议不要说问题,因为你的这个j永远不会是0和1j=1
    进循环后
    j++
    然后一直没有改变 j一直都是2,所以死循环建议楼主说说你想要实现什么大家再帮你看看怎么实现
      

  8.   

      private void Combobox1_LostFocus(object sender, EventArgs e)
            {
                string i;
                i = num1.Text;
                if (i == "")
                {
                    MessageBox.Show("请输入正确的车号!");
                }
                else
                {
                    StreamWriter sw;
                    i = num1.Text.ToString();
                    sw = File.AppendText("\\number.txt");
                    sw.WriteLine(i);
                    sw.Close();
                }
            }
    先谢谢9楼,改成这样就能正常写入了。
    请教下“如果txt文件中已存在输入项的话就不添加,如果不存在就添加 ”这怎么写?
      

  9.   

    那你先对这个txt文件进行读操作,
    判断你写入的数据是否存在.没有就写入,有就pass
      

  10.   

    你可以读出number.txtr的数据进行比较,如果有就不添加嘛
      

  11.   


    你可以先用Stream来Read一下吗
    获得字符串了之后用IndexOf函数查找该关键字
    如果查找到了,那么不执行下面操作.
      

  12.   


    String[] s = temp.Split(',');//temp为读取字符串
    foreach(String a in s)//s为分割后的字符串组
    {
       if(input==a)//input为输入比较
       {
          //标示存在
       }
    }
      

  13.   

    改成i = num1.Text.trim()
    可能是你的i等于空格了