ぺやろぐ

・・・死は避けられない。あんたも死ぬし、俺だって死ぬ。みんないつか死ぬ。・・・だが、今日じゃない! by 映画「バトルシップ」

〔C#〕CSVのデータ内にカンマがあっても、カンマ区切りでデータを取得する

人気記事セレクション

スポンサーリンク


カンマのためのカンマによるカンマを区切る記事。
どうも、ぺやんぐです。


目的

CSVのデータ内にカンマがあっても、カンマ区切りでデータを取得することができるようになること。
TextFieldParserの存在を知ること。


経緯

とあるテーブルの値をまるまる開発環境から本番環境に移動したかったんだけど、開発環境と本番環境でDBの場所が違う。

なので、データを手動で更新する必要が出たんだけど、テーブル削除して新しく作るのはなんか怖いしってことでデータを一旦CSVに吐き出して持っていくことになった。

ただ、このままだと1個1個手動で書き換えとか嫌なので、出力したCSVからUPDATE文を作ってやろうと考えたのが今回の始まり。


作業開始

コンソールアプリでCSVからUPDATE文を書いたテキストを吐き出すプログラムを作ることになったんだけど、「データ内にカンマあるやん。普通にカンマ区切りにしたらまずいぞこれ。」と気づく俺氏。

幸いにもダブルクォーテーションでくくられてる中にあるから、そのあたりで判断させたらいけそうやなぁと検討をつけるが、どうやるんやろとグーグル先生に質問することに。

すると、まんまそれに対応したものを見つけました!(やったね!)


先人に感謝

で、見つかったのが「TextFieldParserクラス」
以下、実際のコード


TextFieldParserの使用例


TextFieldParserっていうのを使い、デリミタにカンマを指定してあげると、区切り用のカンマできれいに区切ってくれます。
あとはそれをごにょごにょするだけ。
まさか、こんな便利なものが存在するとは。
ありがたいですねぇ。


まとめ

TextFieldParserすげぇ。
あと、「タブ区切り使えや」って意見は(∩゚д゚)アーアーきこえなーい