Top > プログラミング > .NET Tips> CSV形式のファイルをDataTableや配列等として取得する

CSV形式のファイルをDataTableや配列等として取得する」への評価、コメント

評価

良い / 悪い = 73 / 6 (「良い」の割合 = 0.924 , 人気度 = 1.753

評価する

コメント一覧


通常のコメント
匿名 2019/04/18 (Thu) 13:48:05
いつもお世話になってます

> Schema.iniファイルの作成法については、

で紹介されているURLは両方ともリンクが切れ(または記事が破棄され)ているようです。

評価の理由
しゃちく 2019/01/10 (Thu) 14:13:29
評価:良い
自前でもデータ内の,や改行を意識したコードが載っているのはとても良いのですが
いまから実装するとしたらTextFiledParserが主流だと思うので、一番上に載せておいてほしいですね

通常のコメント
匿名 2015/04/27 (Mon) 16:39:58
jetOLE等のselectで読込む際に、where句を使用したい場合はどのように指定すればいいのでしょう?

通常のコメント
管理人 2014/10/17 (Fri) 01:49:27
> CsvToArrayList2ですが、""が入れ子になったcsvだと正しく読めませんでした。

私が試した限りでは、大丈夫でした。正しく読めないCSVの具体例を教えていただけないでしょうか?よろしくお願いいたします。

通常のコメント
hogerou 2014/10/9 (Thu) 13:55:26
いつもお世話になっております。
CsvToArrayList2ですが、""が入れ子になったcsvだと正しく読めませんでした。
CSVの仕様を読み込んでいないのでプログラム上の問題なのか、取り扱っているCSVが**なのかなんとも言えませんが。
ちなみに同様のフォーマットのCSVをTextFieldParserクラスでの解析を行うと例外を吐きだしたので軽く死にました。
対策したコードです。

'"が2つ続かない時は終了
'If endPos + 1 = csvTextLength OrElse csvText.Chars((endPos + 1)) <> ControlChars.Quote Then
If endPos + 1 = csvTextLength Then
Exit While
End If

'"の次の文字が区切り文字[,]か、改行の場合はフィールドの終端の"と見なす
If csvText.Chars((endPos + 1)) = ","c Then
Exit While
End If

If csvText.Chars((endPos + 1)) = ControlChars.Cr Then
Exit While
End If

'"が2つ続く
endPos += 1

通常のコメント
匿名 2013/11/24 (Sun) 16:14:25
いつも参考にしています

通常のコメント
管理人 2013/07/7 (Sun) 00:24:37
RFC4180の日本語訳に対するご意見を色々いただき、ありがとうございました。RFC4180の日本語訳は別のサイトにも掲載されるようになり、そちらの方が正確だと思いますので、この記事からは削除することにします。

通常のコメント
KM 2013/03/26 (Tue) 16:57:11
いつも分かりやすい記事でとても参考にさせて頂いています。

SHOULD NOTの件ですが、www.creativyst.comの
>区切りのカンマの前後のスペース(タブを含む)は無視される。
という規約に配慮する形で、RFCは
>スペースはフィールドの一部であり、無視してはいけない。
ではなく、
>スペースはフィールドの一部であり、(基本的には)無視すべきではない。
と書かれているのではないでしょうか。

RFCでも「MUST NOT」と「SHOULD NOT」は、"意図的に"使い分けを行っているようですので、
画一的な「してはならない」「すべきではない」の翻訳のほうが良いかと思います。

【RFCの文中で出会う「MUST NOT」と「SHOULD NOT」の違いは?】
http://ascii.jp/elem/000/000/061/61401/

通常のコメント
mos 2013/03/9 (Sat) 21:15:55
とても助かりました。このようなページを作ってくださってありがとうございます。
なお、shioshioさんのおっしゃる解釈はRFC2119の語義に沿ったものと思います。

評価の理由
匿名 2012/06/9 (Sat) 11:32:05
評価:良い
いつも参考にさせていただいております。
1つの処理でも色々な方法がわかりやすく示されているので大変助かります。

通常のコメント
管理人 2011/08/12 (Fri) 03:43:34
> 「スペースはフィールドの一部であり、【無視してはいけない。】」
> は、
> 原文では「should not be ignored.」であり「must not be 」ではないので、
> 「スペースはフィールドの一部であり、無視するべきではない。」
> という理解になる認識なのですが、いかがでしょうか?

私は英語が得意ではありませんので、そうご指摘を受けるとそうかなとも思ってしまうのですが、「スペースはフィールドの一部」であるなら「無視してはいけない」のが当然で、「無視すべきではないが、してもよい」とするとおかしくありませんか?

手持ちの辞書(小学館 プログレッシブ英和中辞典 初版)を引くと、shouldには「(義務)~しなくてはならない」という意味があり、論理的必然にはshouldもmustも使われると書かれていました。

通常のコメント
shioshio 2011/08/11 (Thu) 19:56:27
わかりやすいご説明ありがとうございます。
規定されたCSV仕様ですが、
「スペースはフィールドの一部であり、【無視してはいけない。】」
は、
原文では「should not be ignored.」であり「must not be 」ではないので、
「スペースはフィールドの一部であり、無視するべきではない。」
という理解になる認識なのですが、いかがでしょうか?

評価の理由
Me 2011/04/6 (Wed) 22:32:11
評価:良い
「これが私ほしかったものだっ!!」と思いました。
ググってもぜんぜん出てこなかったんで。
Splitとかを入れてなかったからかな?
ほんとにありがとです!!

評価の理由
匿名 2011/02/21 (Mon) 10:55:40
評価:良い
このサイトにはいつもお世話になってます
すごく分かりやすいです!

評価の理由
Deer 2010/12/5 (Sun) 20:10:05
評価:良い
あいまいだったCSVの定義が整理できました。また、様々な取り込み方法が存在する事が分りました。

通常のコメント
秘密 2010/10/28 (Thu) 11:56:34
大変参考になりました

通常のコメント
匿名 2009/11/30 (Mon) 17:21:17
正規表現を使った方法で、レコードのArrayListをString配列に変換して格納するようにすると使いやすくなった。
.net cfは他のやつ使えないからねぇ・・・

評価の理由
LONESAME CARBOY 2009/10/7 (Wed) 14:31:51
評価:良い
表形式とACCESSは似たようなものと考えていましが、こんな方法思ってもいませんでした。ありがとうございました。

通常のコメント
匿名 2009/09/22 (Tue) 14:22:18
どちかというと大変よいサンプルです

評価の理由
劉剛 2009/09/15 (Tue) 22:39:41
評価:良い
このソースはすばらしい。
助かりました。

評価の理由
匿名 2009/06/11 (Thu) 10:15:43
評価:良い
非常に参考になります。

通常のコメント
匿名 2009/06/11 (Thu) 09:17:07
Excelent

評価の理由
匿名 2009/02/19 (Thu) 10:21:38
評価:良い
すばらしい。

コメントの投稿

[説明]