読者です 読者をやめる 読者になる 読者になる

IDE@Plex

C#,WPFやXamarinでのアプリ開発備忘録

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

C# 技術

完全に個人用メモ。
どこかの誰かさんの役に立てばラッキー。
立たなくても俺の役に立つからおk。
そんな記事。

◆経緯

とあるテーブルの値をまるまる開発環境から本番環境に移動したかったんだけど、開発環境と本番環境でDBの場所が違う。
なので、データを手動で更新する必要が出たんだけど、テーブル削除して新しく作るのはなんか怖いしってことでデータを一旦CSVに吐き出して持っていくことになった。
ただ、このままだと1個1個手動で書き換えとか嫌なので、出力したCSVからUPDATE文を作ってやろうと考えたのが今回の始まり。

◆目的

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

◆作業開始

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

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

先人に感謝

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

TextFieldParserの使用例

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

◆まとめ

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

※2017/3/17 記事をリライト。