我有个 txt文件,里面内容例如下面:-63,1,2,-62,200,220,
-41,1,2,-62,120,140,
-66,1,2,-62,220,240,
-44,1,2,-62,140,160,
-53,1,2,-62,180,200,
-46,1,2,-62,160,180,
-52,1,2,-62,170,190,
-42,2,1,-62,130,150,
-59,1,2,-62,190,210,
-48,1,2,-62,150,170,
-65,1,2,-62,210,230,
-40,1,2,-62,110,130,程序需要:比如 int a = -44, 读取txt文件,对比是否在第一竖列有 -44 这个值
{
如果有,让  k=等于第5列的值(140), 
            j=等于第6列的值(160)
}{
如果没有 -44 这个值在第一竖列里找到比-44大的最小相似值 比如为:-42
让 k1=  -42的等于第5列的值
   j1=  -42的等于第6列的值在第一竖列里找到比-44小的最小相似值 比如为:-46
让 k2=  -46的等于第5列的值
   J2=  -46的等于第6列的值
}小弟是新手,在赶毕业设计,着急死了,希望大哥大姐们多多帮忙
小弟给大家跪了

解决方案 »

  1.   

    呵呵,刚好有点时间,给你写了下给你参考下,把那些数字复制,然后放到C:\test.txt,建议还是要按版主说的,自己多写写,多练练,才会有提高        private void button1_Click(object sender, EventArgs e)
            {
                DataTable dt = ReadData();            int a = -44;
                int k, j, k1,j1,k2,j2;            DataRow[] drs=dt.Select("a="+a);            if (drs.Length > 0)
                {
                    k = Convert.ToInt32(drs[0][4]);
                    j = Convert.ToInt32(drs[0][5]);
                }
                else
                {
                    DataTable dt2=dt.Select("a>" + a).CopyToDataTable();                DataView dv = new DataView(dt2);
                    dv.Sort="a";
                    k1 = Convert.ToInt32(dv.ToTable().Rows[0][4]);
                    j1 = Convert.ToInt32(dv.ToTable().Rows[0][5]);                DataTable dt3 = dt.Select("a<" + a).CopyToDataTable();                DataView dv2 = new DataView(dt3);
                    dv2.Sort = "a desc";
                    k2 = Convert.ToInt32(dv2.ToTable().Rows[0][4]);
                    j2 = Convert.ToInt32(dv2.ToTable().Rows[0][5]);
                }
            }        private DataTable ReadData()
            {
                String input;
                DataTable myDataTable=new DataTable();
                DataRow myDataRow;            StreamReader sr = File.OpenText("c:\\test.txt");            myDataTable.Columns.Add("a",typeof(Int32));
                myDataTable.Columns.Add("b",typeof(Int32));
                myDataTable.Columns.Add("c",typeof(Int32));
                myDataTable.Columns.Add("d",typeof(Int32));
                myDataTable.Columns.Add("e",typeof(Int32));
                myDataTable.Columns.Add("f",typeof(Int32));            while ((input=sr.ReadLine())!=null) 
                {
                    String[] nodes = input.Split(',');
                 
                    myDataRow=myDataTable.NewRow();
                 
                    for(int i=0;i<6;i++)
                    {
                        myDataRow[i] = nodes[i];
                    }
        
                    myDataTable.Rows.Add(myDataRow);
                }            sr.Close();            return myDataTable;
            }