在文件2001.txt中有11080行记录,记录格式如下:0001,2011/05/10 00:05:10,01,0015309770
0001,2011/05/10 00:05:10,23,0305第一列是ID号,第二列是日期和时间,第三列是状态代码,第四列是卡号或者是事件代码目前此文件按照日期时间排序,要求编写一个程序,读出此文件后,重新按照状态代码、卡号、日期时间排序(升序)后再写入到2002.txt,并且显示在一个浏览框中。

解决方案 »

  1.   

    读取每一行,先按空格split,然后对数组最后一个按逗号split,得到具体信息后,自己琢磨吧
      

  2.   

    本帖最后由 caozhy 于 2011-07-15 11:45:07 编辑
      

  3.   

                File.WriteAllLines("2002.txt", File.ReadAllLines("2001.txt")
                    .Select(value => value.Split(','))
                    .Select(value => new KeyValuePair<string, string[]>(value[2] + value[0] + value[1], value))
                    .OrderBy(value => value.Key)
                    .Select(value => String.Join(",", value.Value)).ToArray());
      

  4.   


                string[] lines = File.ReadAllLines("2001.txt");
                Array.Sort(lines, delegate(string s1, string s2) 
                {
                    string[] temp1 = s1.Split(',');
                    string[] temp2 = s2.Split(',');
                    if (temp1[2] == temp2[2])
                    {
                        if (temp1[3] == temp2[3])
                            return temp1[1].CompareTo(temp2[1]);
                        return temp1[3].CompareTo(temp2[3]);
                    }
                    return temp1[2].CompareTo(temp2[2]);
                });
                File.WriteAllLines("2002.txt", lines);