10月 2014年

C# で Listデータ を CSVファイル へ 書き込む 方法

Listデータ を CSVファイル へ書き込むサンプルコードを作成しました。 読み込みがあるから書き込みもと思って作りましたが、単純に実装しています。 CSVフォーマットの仕様に関してはざっくりと CSVフォーマット の 仕様 に記載しました。 目次 サンプルコード 使用例

C# で CSVファイル を List データ に 読み込む 方法

CSVファイル または 文字列 を List 配列 に読み取るコードを作成する必要があったので、サンプルコードを作成しました。 ちまたのサイトでは カンマ(,) でスプリットするものが多く、ダブルクォート(")、改行(\r\n)、エスケープ文字もきちんと判別、読み取るものがみあたらなかったので、細かいとこまでできるものを実装してみました。 ファイルの読み込みもすべて最初に一括実行するのではなく、逐次実行するよう実装しました。 おそらく大きなファイルでも止まらずに実行できる ハズ …と、信じています(試していないのでわからない…)。 最悪、非同期メソッドを実装してあるので、そちらを利用するとなんとか回避できると思います。 CSVフォーマットの仕様に関してはざっくりと CSVフォーマット の 仕様 に記載しました。 単体テスト含めた全体コードは Github garafu/sa ...

CSVフォーマット の 仕様

CSVフォーマットの読み書きが必要になってきたので、まずはその仕様について調べてまとめてみました。 CSVフォーマットの仕様は、ざっくりと書くと以下のようになるようです。 CSVフォーマット それぞれのレコードは改行コード(CRLF)で区切られます。 最終レコードは改行コード(CRLF)があったり、なかったりします。 最初の1行にヘッダー行を記述することができます。ヘッダーはフィールドと一致する名前を定義し、数がフィールドの数と一致しています。 ヘッダーとそれぞれのレコードにおいて、1つ以上のフィールドが存在し、カンマで区切られます。 フィールドはダブルクォートで囲んでもよいし、囲まなくてもよい。 フィールドに改行コード(CRLF)、ダブルクォート、カンマを含む場合、ダブルクォートで囲みます。 ダブルクォートがフィールドに含まれる場合、ダブル ...