|
.NET TIPS 複数の行を含む文字列から1行ずつ読み出すには?デジタルアドバンテージ2004/12/17 |
![]() |
|
|
|
複数の行を含んだ1つの文字列から1行ずつ読み出して処理する場合、文字列中に含まれる改行コードにより文字列を分割することになる。しかし、OSによって改行コードは異なるため、その文字列がWindows以外のOSで作成されていると、改行コードの違いを意識しなくてはならない。以下の表に、各種OSで使用される改行コードについてまとめた。
|
OS
|
改行コード
|
文字コード
|
C#での表記
|
VB.NETでの表記
|
|
Mac OS 9まで
|
キャリッジ・リターン(CR)
|
13
|
\r
|
Cr
(またはvbCr) |
|
Linux、Unix、
Mac OS X |
ライン・フィード(LF)
|
10
|
\n
|
Lf
(またはvbLf) |
|
Windows
|
キャリッジ・リターン(CR)
+ライン・フィード(LF) |
-
|
\r\n
|
CrLfまたはNewLine
(またはvbCrLfかvbNewLine) |
| 各種OSで使用される改行コードとC#、VB.NETでの改行コードの表記 | ||||
このような改行コードによる文字列分割を行う場合には、StringReaderクラス(System.IO名前空間)のReadLineメソッドが便利だ。このメソッドは、文字列中に含まれる改行コードが上記3種類のいずれであっても、その文字列から1行ずつ読み出すことができる。読み出した行には改行コードは含まれない。
StringReaderクラスでは、そのコンストラクタで対象となる文字列(複数行を含む)を指定してインスタンス化する。また、ReadLineメソッドは読み出す行がなければnull(VB.NETの場合にはNothing)を返す。
以下にStringReaderクラスを利用したサンプル・プログラムを示す。
|
|
| StringReaderクラスを利用したC#のサンプル・プログラム(strreader.cs) | |
|
|
| StringReaderクラスを利用したVB.NETのサンプル・プログラム(strreader.vb) | |
なお、VB.NETのCr、Lf、CrLf、NewLineは、Microsoft.VisualBasic名前空間のControlCharsモジュールで定義されている定数である。また、vbCr、vbLf、vbCrLf、vbNewLineは同名前空間のConstantsモジュールで定義されている定数である。![]()
| カテゴリ:クラス・ライブラリ 処理対象:文字列 使用ライブラリ:StringReaderクラス(System.IO名前空間) 使用ライブラリ:ControlCharsモジュール(Microsoft.VisualBasic名前空間) 使用ライブラリ:Constantsモジュール(Microsoft.VisualBasic名前空間) |
|
||||||||||||||||||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
Insider.NET フォーラム 新着記事
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
@IT 新着記事
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -
お勧め求人情報
転職/派遣情報を探す
**先週の人気講座ランキング**
〜 Android編 〜
ホワイトペーパー(TechTargetジャパン)
ソリューションFLASH


