【问题标题】:c# easy way to index a text filec#简单的方法来索引一个文本文件
【发布时间】:2013-10-09 12:51:30
【问题描述】:

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

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

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

    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);
            }
        }

感谢您的帮助。

【问题讨论】:

  • 尽管它不是解决您的问题所必需的,但如果您在发布之前将您的变量/cmets/strings 翻译成英文会很有帮助。只是一个想法。 ——编辑:太棒了。谢谢。
  • 我将每个变量翻译成英文 //................................

标签: c# visual-studio-2010 indexing


【解决方案1】:

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

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

请注意有关 ReadLines 与 ReadAllLines 的相关信息:

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

这是一个例子:

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

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

【讨论】:

  • 这样的话File.ReadLines(fileName).Count()File.ReadAllLines(fileName).Count()应该没有区别吧?
  • 我相信你是正确的,但我没有足够的知识来确定。所以我只包含了这些信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-26
  • 1970-01-01
  • 2017-11-02
  • 2010-09-19
  • 1970-01-01
相关资源
最近更新 更多