• 締切済み

CSVファイルの読み込み

ASPの勉強をしています。 CSVファイルを読み込んでDBに登録していきたいのですが、 111,222,"aaa[改行]bbb","1,000",444,555 のようなデータがあったとすると、 「1,000」の桁区切りのカンマのせいで、 「1」 と 「000」に別れてしまいます。 これを防ぐプログラムを作りたいのですが、 わかる方よろしくお願いします。 現在はReadLineで1行ずつ読み込んでいます。 set ObjFS = CreateObject("Scripting.FileSystemObject") set Stream = ObjFS.OpenTextFile(Server.MapPath(FILENAME,1,false,0) ReadBuf = Stream.ReadLine

みんなの回答

回答No.2

「1」と「000」に別れてしまいます。 と、ありますがこれはDBに登録した結果ですか? それともSplit関数の結果でしょうか・・・。 あと、データ中に改行が含まれているにもかかわらず、1行ずつの読み込んでちゃんと登録できるのか、疑問です。 Split関数でレコードを分解し、データに改行を許可するのであれば、 ・ダブルクォーテーション(")を考慮したSplit関数を自作 ・データに改行が含まれていたら次の行も1件として考える という仕組みが必要になると思います。

amile
質問者

補足

ありがとうございます。 「1」と「000」に別れるのは、 おっしゃる通り、Split関数の結果です。 配列数を確認して足りなかったら、 次の行も連結する、という方法で読み込んでます。 ダブルクォーテーションを考慮した自作の関数ですが、 もしよろしければ、 ソースでもあれば教えていただきたいのですが。 まったくわからないので・・・。

回答No.1

元々のdataに問題があるような気がしますが 無理やり行うのであれば、列DATA一つづつ if ””がある場合 then if dataに,が存在した場合, then を削除する の処理を入れればよいのではないですか。

関連するQ&A