ダブルクォーテーションをはずすには?

解決


はな  2004-05-01 05:35:28  No: 112998

csvファイルを開いて(1行のみ)、それをカンマごとに分割してテキストボックスに表示したいのですが、不要な  ””がついてしまいます。
空白データを表示するテキストボックスには何も表示させたくないのですが、””が表示されてしまいます。
どのように対処すればよいのでしょうか?
よろしくお願いいたします。
 
Open "myfile.csv" For Input As #fileNo    
Line Input #fileNo, TextLine          
strTemp = Split(TextLine, ",")      

Text2.Text = strTemp(4)
Text3.Text = strTemp(2)
Text4.Text = strTemp(3)
Text5.Text = strTemp(6)


朝まで生テレビ  2004-05-01 13:05:08  No: 112999

csvファイルでは文字列を「"」で囲って保存するのでそのままでは表示されてしまいます。
Mid関数で省けば良いのですが、数字の場合・・・

strTemp(4) = "ABCDE"
Mid(strTemp(4), 2, Len(strTemp(4)-1)) 'return ABCDE
strTemp(5) = 12345
Mid(strTemp(5), 2, Len(strTemp(4))) 'return 234

初めの文字と最後の文字がchr(34)である事を確認た上で切り取ってみては?
if (Left(strTemp(5), 1) = chr(34)) and (Right(strTemp(5), 1) = chr(34)) then
    Mid(strTemp(5), 2, Len(strTemp(5)-1) 'return 12345
End if 

多分大嘘のコードなので誰か修正してください。m(__)m


Tamy  2004-05-04 00:19:09  No: 113000

朝まで生テレビさんのコード少し訂正すると

>Mid(strTemp(4), 2, Len(strTemp(4)-1)) 'return ABCDE

Mid(strTemp(4), 2, Len(strTemp(4))-1) 'return ABCDE
Len(strTemp(4)-1))→Len(strTemp(4))-1)に訂正(カッコの位置少し訂正)

別な方法として、読み込む項目数が決まっていれば
Line Input ではなく Input で読み込んでみては?
Input #fileNo, strTemp(0),strTemp(1),strTemp(2),……

項目数が決まっていなければ
Text1.Text = Replace(strTemp(1), """", "")
とSplit関数で返された配列をReplace関数で置き換えてみるのはどうでしょう?


はな  2004-05-08 02:38:40  No: 113001

お返事遅くなって申し訳ありません。
Replaceを使って""が消えました!
今のところこれで不具合は無いので大丈夫みたいです。
なるほど!って思いました。

みなさま、ありがとうございました。


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




  


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