今天一个朋友问我一个程序如何写:题目如下:

请写一个程序找出附件中文件重复的行
输出:
  输出一个文本文件,给出哪些行是重复的,第一次出现的行号,格式如下
  行号    此行的文本内容
  并给出此程序的运行时间

我大概写了一下,代码如下:

static void Main(string[] args)
        {
            TimeSpan ts1 = new TimeSpan(DateTime.Now.Ticks); //get current ticks.
            StreamReader sr = new StreamReader(@"D:\文本.txt", System.Text.Encoding.Default);         //the path of source file.
            String strline="";
            int number=1;//indicate the line number.
            StringBuilder sb=new StringBuilder();

            Hashtable myHT=new Hashtable ();

            while((strline=sr.ReadLine())!=null)
            {     
                if (myHT.ContainsKey(strline))
                {
                    sb.Append(myHT[strline].ToString() + " " + strline + "\r\n");
                }
                else
                {
                    myHT.Add(strline, number);
                }
                number++;
            }

            sr.Close();
            StreamWriter wr = new StreamWriter(@"D:\1.txt");//the output file.
            wr.Write(sb+"");
            wr.Close();

            TimeSpan ts2 = new TimeSpan(DateTime.Now.Ticks); //get current ticks.
            string spanTotalSeconds = ts2.Subtract(ts1).Duration().TotalSeconds.ToString(); //seconds
            Console.WriteLine(spanTotalSeconds);
            Console.ReadKey();
        }

posted on 2009-01-15 12:38  John.Lau  阅读(833)  评论(2编辑  收藏  举报