c#里一直在读取数字显示在textBox控件中,数值一直在增加,怎么能够在我的数大于1000的时候,取出来保存,只保存第一个。大于2000的时候,也只保存第一个,一直到20000。例如:888,899,999,1001,1002,1033......1989,1999,2002,2033......2989,2999,3011,3022......只提取1001,2002,3011保存在txt文件中

解决方案 »

  1.   

    如果是上面这种格式的话,那么读取出textbox中的值,直接代码解释吧:
                int intCompared = 0;
                string strValue = "888,899,999,1001,1002,1033,1999,2005,2999,3007";
                string[] strArray = strValue.Split(',');
                string strNewValue = string.Empty;
                Queue<int> que = new Queue<int>();            for (int i = 1; i < 200001; i++)
                {
                    if (i % 1000 == 0)
                    {
                        que.Enqueue(i);
                    }
                }            intCompared = que.Dequeue();
                for (int i = 0; i < strArray.Length; i++)
                {
                    int num = 0;
                    int.TryParse(strArray[i], out num);
                    if (num > intCompared)
                    {
                        strNewValue += num.ToString() + ",";
                        if (que.Count < 1) break;
                        intCompared = que.Dequeue();
                    }
                }
      

  2.   

    我表达有误,就是控件中数值一直在变,就像秒表计时一下,textbox控件中只显示当前的数值,一直增加,不一定是增加1,当数值大于1000的时候,马上把那个数保存到txt文件中,然后还在增加,当大于2000的时候,再保存放在那个txt文件中,只保存大于1000的倍数后的第一个数
      

  3.   


           int k;
            private void button1_Click(object sender, EventArgs e)
            {
                string s = "888,999,1001,1055,1056,1999,2001,2099,3001,3050,4055,4056,4059";
                string[] str;
                k = 1000;
                str = s.Split(new Char[] { ',' });
                for (int i = 0; i < str.Length - 1; i++)
                {
                    // MessageBox.Show(searchStr(str[i]));
                    if (searchStr(ref k, (str[i])) != "")
                    {
                        MessageBox.Show(str[i]);
                    }
                }
            }        private string searchStr(ref int t, string s)
            {
                if (Convert.ToInt64(s) < k)
                {
                    return "";
                }
                else
                {
                    t += 1000;
                }
                return s;
            }插入txt的我就没写了,自己上网找找应该有了,这个窗体只有一个button1.然后就可以测试了,详细的不懂的在问吧。
      

  4.   

    在textbox中有一个textBox.TextChanged()事件,在这个事件下判断textbox的值是不是1000的整数倍。
    int i=1;//一个全局变量
    下面的代码是事件textBox.TextChanged()发生的代码。
    if(k/1000==i&&i<=20)
    {
      保存k;
      i++;
    }
      

  5.   

    textChanged事件中去写检测方法是不是大于1000
      

  6.   

    在textchanged事件中,把Text强制转换成数字类型(int,double,decimal取决于你的原始数据)。然后判断是不是大于1000,2000,等等。
    另外用一个标志位来判断是否已经保存过第一个数字。