CSVファイルの文字列の中のカンマについて

解決


へなちょこ  2004-07-20 19:52:54  No: 84671

VB6SP5  Win2000です。
CSV(カンマ区切り)での文字列の中のカンマにどう対応してよいのかわかりません。
Split関数を使っていたので、おかしなデータができてしまいました。
LineInputしてから、「”」の文字を見ながら、「”」と「”」の間にカンマは無視するようなロジックを書くしかないのでしょうか?


Dental  2004-07-20 20:07:04  No: 84672

> 「”」と「”」の間にカンマは無視するようなロジックを書くしかないのでしょうか?
地道に、ロジックを書きましょう。


JAN  2004-07-20 20:34:16  No: 84673

項目数が分かっているのならInputで問題なく読み取れるはずですが?


Dental  2004-07-20 20:46:01  No: 84674

> 項目数が分かっているのならInputで問題なく読み取れるはずですが?
Inputだと、データによっては正しく読み込めない事がありますが?

Open "C:A.TXT" For Output As #1
Write #1, "カンマ,入り", "シャープ#入り", "ダブルクォーテーション""入り", "改行" & vbCrLf & "入り"
Close #1
Open "C:A.TXT" For Input As #1
Input #1, strComma, strSharp, strQuate, strLine
Close #1

Debug.Print "「" & strComma & "」"
Debug.Print "「" & strSharp & "」"
Debug.Print "「" & strQuate & "」"
Debug.Print "「" & strLine  & "」"

結果:
「カンマ,入り」
「シャープ#入り」
「ダブルクォーテーション」
「入り」


魔界の仮面弁士  2004-07-20 21:03:04  No: 84675

# 回答ではありません。

以前、古市さんが、そういうパーツを公開しておられたのですが…。
残念ながら、現在は閉鎖されているようですね。

http://web.archive.org/web/20011218004248/www.netlaputa.ne.jp/~stadt/vb/p17/csvread.htm
http://web.archive.org/web/20011005211005/www.netlaputa.ne.jp/~stadt/vb/p17/csvwrite.htm

…もしかしたら、RegExp.Replaceで処理できるかな? (試していませんけど)


魔界の仮面弁士  2004-07-20 21:23:05  No: 84676

あとは…このあたりかな。(こちらも、動作は未確認です)
http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/VB_Controls/Q_20915552.html


へなちょこ  2004-07-20 23:34:57  No: 84677

ありがとうございました。
なんとかやってみます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加