VB6で、CSVファイルを読込むプログラムを作成しています。
当初、Inputを用い各項目を読込んでましたが、文字に全角カンマが含まれており、誤動作する事がわかりました。
そこで、Line Input命令を用いて、1行全部を読込もうとしてるのですが、
1項目(半角カンマ区切り部分まで)しか読めず、Inputと同じ結果になってしまってます。
1行全部読むにはどうしたらいいでしょうか?
*改行まで読んでもいいし、固定長なのでサイズ指定でもOKです。
Dim aaa as String
Open "c:\test.csv" For Input As #1
Line Input #Fno, aaa
Close #1
こちらでも試してみましたが特に問題なく1行ずつ読めました。(VB6使用)
ところで,なぜLine Input のファイルナンバーだけ変数が使われているのでしょう?
Private Sub Command1_Click()
Dim aaa As String
Dim Fno As Integer
Fno = 1
Open "c:\test.csv" For Input As #1
Do While Not EOF(1)
Line Input #Fno, aaa
Debug.Print aaa & vbCrLf
Loop
Close #1
End Sub
test.csvの内容(20000台の前後のみ半角カンマ)
↓ ↓
テスト、,TEST,TEST,1000,21320,テスト、,TEST,TEST,1000
テスト、,TEST,TEST,1001,21321,テスト、,TEST,TEST,1001
テスト、,TEST,TEST,1002,21322,テスト、,TEST,TEST,1002
テスト、,TEST,TEST,1003,21323,テスト、,TEST,TEST,1003
テスト、,TEST,TEST,1004,21324,テスト、,TEST,TEST,1004
テスト、,TEST,TEST,1005,21325,テスト、,TEST,TEST,1005
テスト、,TEST,TEST,1006,21326,テスト、,TEST,TEST,1006
テスト、,TEST,TEST,1007,21327,テスト、,TEST,TEST,1007
テスト、,TEST,TEST,1008,21328,テスト、,TEST,TEST,1008
テスト、,TEST,TEST,1009,21329,テスト、,TEST,TEST,1009
半角カンマを示すはずの「↓」がずれてしまいました。
>半角カンマを示すはずの「↓」がずれてしまいました。
名前間違えました。orz
元(CSV)ファイルに問題があった様で解決致しました。
ありがとうございます!
ツイート | ![]() |