VB6SP5 Win2000です。
CSV(カンマ区切り)での文字列の中のカンマにどう対応してよいのかわかりません。
Split関数を使っていたので、おかしなデータができてしまいました。
LineInputしてから、「”」の文字を見ながら、「”」と「”」の間にカンマは無視するようなロジックを書くしかないのでしょうか?
> 「”」と「”」の間にカンマは無視するようなロジックを書くしかないのでしょうか?
地道に、ロジックを書きましょう。
項目数が分かっているのならInputで問題なく読み取れるはずですが?
> 項目数が分かっているのなら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 & "」"
結果:
「カンマ,入り」
「シャープ#入り」
「ダブルクォーテーション」
「入り」
# 回答ではありません。
以前、古市さんが、そういうパーツを公開しておられたのですが…。
残念ながら、現在は閉鎖されているようですね。
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で処理できるかな? (試していませんけど)
あとは…このあたりかな。(こちらも、動作は未確認です)
http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/VB_Controls/Q_20915552.html
ありがとうございました。
なんとかやってみます。
ツイート | ![]() |