1

そのため、ファイルが既に 50 文字ごとに分割されているかどうかを確認する必要があるコードがあります。99% の時間は、各行が 50 文字である分割された状態になりますが、1 行として表示される可能性は低く、50 文字ごとに改行を追加する必要があります。このファイルは常にストリームとして届きます。

適切にフォーマットされたファイルができたら、必要に応じて処理します。

ただし、ストリームが適切にフォーマットされているかどうかを確認する方法がわかりません。

これは、最初の行が50文字を超えているかどうかを確認する必要があるコードです(分割する必要があるかもしれない指標)。

var streamReader = new StreamReader(s);
var firstLineCount = streamReader.ReadLines().Count();
if(firstLineCount > 50)
{
//code to add line breaks
}

//once the file is good
using(var trackReader = new TrackingTextReader(streamReader))
{
//do biz logic
}

ストリーム リーダーに改行を追加するにはどうすればよいですか?

4

2 に答える 2

1

には何も書き込むことはできませんTextReader。これは... リーダーだからです。ここでのオプションは、整形式のデータのコピーを作成することです。

    private IEnumerable<string> GetWellFormedData(Stream s)
    {
        using (var reader = new StreamReader(s))
        {
            while (!reader.EndOfStream)
            {
                var nextLine = reader.ReadLine();
                if (nextLine.Length > 50)
                {
                    // break the line into 50-chars fragments and yield return fragments
                }
                else
                    yield return nextLine;
            }
        }
    }
于 2013-05-07T19:54:07.657 に答える