0

まず第一に、私は C# の使用経験が豊富な人ではありません。これまでに行ったことは、テキスト ファイル全体を読み取ることだけです。

テキスト ファイルの最後の数行を読みたいのですが、最終的にはいくつかのテキスト ファイルに対してこれを行う必要があり、それぞれの形式は同じです。約 80 行の奇数行の情報が必要です。 「#Footer」という単語に到達したら、可能であれば、その特定の単語の後のすべての行を読みたいと思います (大まかに言って、「#Footer」という単語の後の約 6/7 行をそれぞれに保持しますテキストファイル)。

これについてどうやって行くかについてのアイデアはありますか?ありがとう

4

3 に答える 3

6

ファイル全体をメモリにロードする必要のないFile.ReadLinesを使用できます。

var lines = File.ReadLines(fname)
            .SkipWhile(line => !line.StartsWith("#Footer"))
            .Skip(1)
            .ToList();

編集

Console.WriteLine(String.Join(Environment.NewLine, lines));
于 2013-11-02T16:19:38.510 に答える
0
 private  String GetFooter(String filePath)
        {

            String inputText = "#Footer";
            String footerText ="";
            String [] allFileLines=(String[])File.ReadLines(filePath).ToArray();
            int footerLineNo = -1;
            for (int i = 0; i < allFileLines.Length; i++)
            {
                if (allFileLines[i].Contains(inputText))
                    footerLineNo = i;
            }

            if (footerLineNo > -1)
            {
                for (int i = footerLineNo + 1; i < allFileLines.Length; i++)
                    footerText += allFileLines[i]+"\n";
            }
            return footerText;
        }
于 2013-11-02T16:27:07.620 に答える
0

これを試して

        bool check= false;
        string myline;
        string mytext = "";
        StreamReader reader = new StreamReader("temp.txt");
        while ((myline= reader.ReadLine()) != null)
        {
            if (myline.Contains("#Footer") || check)
            {
                check= true;
                mytext += line;
            }
        }
于 2013-11-02T16:27:56.653 に答える