-3

私はテキスト ファイルを持っていて、ストリーム リーダーを使用して読み取ります。ファイルにデータと共に空の行がある場合、何も読み取れません。C# を使用して空行を削除する方法。

4

3 に答える 3

15

あなたはコードを何も示しておらず、あなたの説明はかなり愚かですが、.NET 4の時点では、これはあなたが望むことをするための非常に簡単な方法です:

IEnumerable<string> lines = File.ReadLines().Where(line => line != "");

トリミングは実行されないため、スペースのみが含まれる行が返されることに注意してください。

また、上記のコードは、その行を実行しただけではファイルを読み取らないことに注意してください。ファイルは、を反復しようとしたときにのみ読み取られ、を反復するたびlines再度読み取られます。一度にメモリに読み込む場合は、次のようにします。lines

List<string> lines = File.ReadLines().Where(line => line != "").ToList();
于 2012-09-07T08:40:22.897 に答える
1

さて、ループ内で StreamReader のメソッド「ReadLine()」を使用する必要があります。空行を受け取ったら、ReadLine() から取得した文字列が空かどうかを確認します。その場合は、その行を無視してください。次のようなものを試してください:

    StreamReader input = new StreamReader("...");
    String line = null;

    do 
    {
    line = input.ReadLine();

    if (line == null)
    {
    return;
    }

    if (line == String.Empty)
    {
    continue;
    }

    // Here you process the non-empty line

    } while (true);
于 2012-09-07T08:41:21.863 に答える
-1

以下はコードです:

private void ReadFile()
{
    try
    {
        string line = null;
        System.IO.TextReader readFile = new StreamReader("C:\\csharp.net-informations.txt");
        while (true)
        {
            line = readFile.ReadLine();
            if (line != null)
            {
                MessageBox.Show(line);
            }
        }
        readFile.Close();
        readFile = null;
    }
    catch (IOException ex)
    {
        MessageBox.Show(ex.ToString());
    }
}
于 2012-09-07T08:42:06.933 に答える