- ベストアンサー
C#で空白行を削除する方法
- C#でテキストの空白行を削除する方法について教えてください。
- FileStreamクラスとStreamReaderクラスを使用してC#でテキストファイルを読み込み、空白行を削除する方法を教えてください。
- C#の正規表現を使用して、テキストの空白行を削除する方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
この処理ならばファイルを一行ずつ読み込んでStringBuilderに追加していく方法でいいんじゃないですか? 正規表現でやりたいならば、 A = Regex.Replace(A, "\n{1,}", "\n"); でいいと思います。 ちなみに改行を\r\nで表していますが、EUCのファイルを処理するのでしょうか?
その他の回答 (3)
- sakuhat
- ベストアンサー率61% (11/18)
1行1行足すときに Bonjinさんが仰っているStringBuilderを 使えば置換するより速くなると思いますよ。 文字列を連結するには? http://www.atmarkit.co.jp/fdotnet/dotnettips/029strcat/strcat.html
お礼
ありがとうございます。すごく早く読み込めるようになりました。
- sakuhat
- ベストアンサー率61% (11/18)
置換する方法ではなく、 1.textBox1.Textを空に 2.テキストを1行ずつ読み込む 3.読み込んだ行が「@"^\s*$"」にマッチするかどうか判別 4.マッチしなければtextBox1.Textに足す。 5.2~4を全行読み込むまで続ける。 といった処理の方が簡単だと思います。 1行ずつ読み込む方法 http://dobon.net/vb/dotnet/file/readfile.html (下のほうのやり方です。) 正規表現の活用法 http://www.atmarkit.co.jp/fdotnet/basics/regex01/regex01_01.html
お礼
正規表現の活用法は参考になりました。ありがとうございます。
補足
おっしゃる通り1行ずつ読み込めばできるんですが、ファイルの容量が10MB近くあるのでかなり時間がかかるんです。
- phoenix343
- ベストアンサー率15% (296/1946)
Regex.Replace(A, "\r\n\r\n", "\r\n"); じゃだめなのかな?
お礼
Regex.Replace(A, "\r\n\r\n", "\r\n") では削除できませんでしたが、回答していただきありがとうございました。まは次回も宜しくお願いします。
お礼
言われた通りStringBuilderにしてみました。 さほどストレス無く読み込めるようになりました。 ありがとうございました。
補足
htmlファイルを読み込んで、正規表現でタグを取り除いてtextBoxに表示させています。\r\nにしないと改行されないのでそうしています。