6

改行で区切られたデータ行を含むテキスト ファイルがあります。私がやろうとしているのは、改行のみの行を除いて、ファイル内の行数を数えることです。

正規表現を使用して各行を読み取ろうとしていますが、改行文字で始まる場合は行数に含めませんが、機能しないようです。結果なしでこれを行う方法をあちこちで検索しました。

これを行うために私が書いた方法は次のとおりです。

public int LineCounter()
{
    StreamReader myRead = new StreamReader(@"C:\TestFiles\test.txt");
    int lineCount = 0;
    string line;

    while ((line = myRead.ReadLine()) != null)
    {
        string regexExpression = @"^\r?\n";
        RegexOptions myOptions = RegexOptions.Multiline;
        Match stringMatch = Regex.Match(line, regexExpression, myOptions);
        if (stringMatch.Success)
        {
        }
        else 
        {
            lineCount++;
        }
    }
    return lineCount;
}

Singlelineと の間でRegexOptions を変更しようとしました。パターン マッチにMultiline入れてみました。また、式から を削除しようとしましたが、うまく動作しないようです。私が何をしても、常に改行を含むファイル内の総行数になります。"\r|\n|\r\n"^lineCount

私は明らかな何かを見落としているようですが、何が問題なのかを理解できるほど C# 言語に慣れていません。すべてが私にはうまくいくはずです。誰かが私を助けてくれますか?

4

5 に答える 5

1

ファイル内の行数をカウントする最も簡単な方法は次のとおりです。

private static int LineCounter(string filePath)
{
    string[] lines = File.ReadAllLines(filePath);
    return lines.Length;
}
于 2013-07-24T19:34:48.653 に答える