- 締切済み
VB6でCSVの取込をする
VB6.0 でCSVの取り込みをしています。 Dim objFso As FileSystemObject Dim objTso As TextStream Dim データ As Variant Dim stArrayData() As String Set objFso = New FileSystemObject Set objTso = objFso.OpenTextFile(取込パス, ForReading) データ = objTso.ReadLine '配列に格納 stArrayData = Split(データ, ",") 'データの取得 データの取得 = stArrayData(0) stArrayData(0)で、データが取得できますが、 ダブルコーテーションが付加された状態で取得がしたいのですが、できません。。 今は、「000」で取得しているのを、 「"000"」で取得したいのです。 なお、取込むCSVをテキストで開くと、 ダブルコーテーションはついていません。 また、そもそも、取込む際に、ダブルコーテーションを付加する方法があるのでしょうか? それとも、取込んだ後に、ダブルコーテションを付加するのでしょうか? ご教授宜しくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
EXCEL等で 000 "000" 000,000 "000,000 と言う文字列データを入力してCSVに書き出すと 000,"""000""","000,000","""000,000" と言うCSVファイルが出力されます。 これを取り込んだ場合、データは 000 "000" 000,000 "000,000 の4つにならなければなりません。 >今は、「000」で取得しているのを、 > 「"000"」で取得したいのです。 では、CSVファイルに「"""000"""」って書かれていたら、つまり、EXCELで「"000"」と言う文字列を入力していたら、どういう文字列になるべきか、考えてみましょう。 正解は「"000"」でしょうか?それとも「""000""」でしょうか? 単純に >'配列に格納 >stArrayData = Split(データ, ",") では「データとしてカンマを入力したとき」に正常に動作しません。 http://excel-ubara.com/excelvba5/EXCEL111.html の最初のサンプルも「データの中の"や,を考慮してないサンプル」であり、貴方のプログラムと同じで、正常に動作しません。 同じページの2番目のサンプルが「データの中の"や,を考慮しているサンプル」で、この2番目のサンプルのように作らないと、データを正常に読み込めません。 EXCEL等で 000 "000" 000,000 "000,000 と言う4つの文字列データを入力してCSVに書き出して 000,"""000""","000,000","""000,000" と言うCSVファイルを作り、このCSVファイルを読み込んで、元通り4つの 000 "000" 000,000 "000,000 と言うデータが取り込めれば「正常」です。 もちろん「自分で勝手に”を付け足す」なんて事はやってはいけません。 そんなことをしたら、元々のデータに”があったのか、それとも貴方が勝手に付け足したのか、判らなくなってしまいます。
お礼
早々のご回答ありがとうございます。 再度、試したところ、やりたいことが実現しました。 CSVの取り込みについて、いろいろ勉強になりました。 ありがとうございました。