c#索引文本文件的简便方法

时间:2013-10-09 12:51:30

标签: c# visual-studio-2010 indexing

我是c#编程的新手,我有一个问题: 我想在行的开头添加索引号,示例:

1. m.vardas  m.pavarde  m.adresas  m.telnum  m.uzrasai

我认为必须有比读取文件更好的方法,并计算所有行以获得file中的行数。这是我的代码:

    class Mokiniai // students
    {
        struct Mokinys // student
        {
            public string vardas; // name
            public string pavarde; //last name
            public string adresas; //address
            public string telnum; //phone number
            public string uzrasai; //notes
        };
        //.........................................................
        public static void mokirasymas()
        {
            Mokinys m;
            //...................................................
            Console.WriteLine("Iveskite Mokinio varda: "); // input student name
            m.vardas = Console.ReadLine();
            Console.WriteLine("Iveskite Mokinio pavarde: "); // input student lastname
            m.pavarde = Console.ReadLine();
            Console.WriteLine("Iveskite Mokinio adresa: "); // input address
            m.adresas = Console.ReadLine();
            Console.WriteLine("Iveskite Mokinio telefono numeri: "); //input number
            m.telnum = Console.ReadLine();
            Console.WriteLine("Iveskite pastabas apie Mokini: "); //input notes
            m.uzrasai = Console.ReadLine();
            string mokinys = String.Format("|{0,15}|{1,15}|{2,15}|{3,15}|{4,15}|", m.vardas, m.pavarde, m.adresas, m.telnum, m.uzrasai);
 using (TextWriter writer = File.AppendText("text.txt"))
            {
                //
                // Only first time  when program is used
                //
                //writer.WriteLine("|-------------------------------------------------------------------------------|");
                //writer.WriteLine("|    Vardas     |    Pavarde    |    Adresas    |  Tel.Numeris  |    Pastabos   |");
                //writer.WriteLine("|-------------------------------------------------------------------------------|");
                //
                // 
                //
                writer.Write(mokinys);
                //
                // Iraso nauja eilute i faila
                //
                writer.Write(writer.NewLine);
            }
        }

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

可能有一种比读取整个文件更好的方法来计算行数(读取最后一行?你能信任吗?)文件中有多少行没有特殊的文件属性。

如果您想知道使用的行数File.ReadLines()

请注意ReadLines vs ReadAllLines:

  

ReadLines和ReadAllLines方法的不同之处如下:使用ReadLines时,可以在返回整个集合之前开始枚举字符串集合;当您使用ReadAllLines时,必须等待返回整个字符串数组才能访问该数组。因此,当您使用非常大的文件时,ReadLines可以更有效。

以下是一个例子:

var numLines = File.ReadLines(@"text.txt").Count();

然后你只需将它添加到格式字符串中。