Tuesday, December 2, 2008

Đếm số dòng có trong một File

Đoạn code sau đưa ra cách để đếm số dòng trong một file. Nó sẽ đếm cả dòng cuối cùng của một file ngay cả khi dòng cuối cùng không phải là kết thúc của dòng mới.

Cách sử dụng:

C:/>CountLine CountLine.cs
lines = 50

Mã nguồn bằng C#:

namespace Sample
{
   static class LineCount
   {
       /// 
       /// The main entry point for the application.
       /// 
       [STAThread]
       static void Main(string[] args)
       {
           if (args.Length == 0)
               Console.WriteLine("Usage: LineCount File Name");
           else
           {
               string fileName = args[0];

               if (!File.Exists(fileName))
                   Console.WriteLine("File '{0} does not exist. Please try again.", fileName);
               else
               {
                   FileStream fileStream = File.OpenRead(fileName);
                  
                   int ch, prev = '\n' /* so empty files have no lines */, lines = 0;

                   while ( (ch = fileStream.ReadByte()) != -1) /* Read all chars in the file. */
                   {
                       if ( ch == '\n' )
                       {
                           ++lines; /* Bump the counter for every newline. */
                       }
                      
                       prev = ch; /* Keep a copy to later test whether... */
                   }
                  
                   fileStream.Close();
                  
                   if ( prev != '\n' ) /* ...the last line did not end in a newline. */
                   {
                       ++lines; /* If so, add one more to the total. */
                   }
                  
                   Console.WriteLine("lines = {0}", lines);
               }
           }
       }
   }
}

No comments:

Post a Comment