質問: line inputにて改行があっても全行読むことがあるのでしょうか? お世話になります。 今日仕事でcsvファイルをline inputで読み込んだとき 一回目のline inputで最後まで読んでしまうファイルがありました。 形式としては 下記のような感じだったのですが(外には出せないデータですのでこんな感じだというイメージです。) 家でこれを読ませると普通に1行ずつ読んでくれます。 読めないデータは1行目を削除すると一行ずつ読んでくれました。 したがって改行コードもあり認識しているはずなのですが・・・ 一行すべて読んでしまうパターンがあるのでしょうか? ご存知の人おられましたらよろしくお願いいたします。 ,,,,,2006/12/28,2006/12/28,2006/12/28,2006/12/28,2006/12/28,2006/12/28 ,,,,,10:10,10:10,10:10,10:10,10:10,10:10 2,,,,,ほげ,ぴよ,7,ぺぺぺぺ,0,2 2,,,,,ほげ,ぴよ,7,ぺぺぺぺ,255,3 2,,,,,ほげ,ぴよぷ,7,ぺぺ,1,4 3,,,,,ほげ,ぴよ,3,ぺ,23,5 4,,,,,ほげ,ぴよ,3,ぺぺぺぺ,3,7 5,,,,,ほげ,ぴよぷ,7,ぺぺぺぺ,5,6 6,,,,,ほげ,ぴよ,4,ぺぺ,-23.06666667,8 7,,,,,ほげ,ぴよ,7,ぺ,-43.32380952,9 7,,,,,ほげ,ぴよぷ,5,ぺぺぺぺ,-63.58095238,0 7,,,,,ほげ,ぴよ,7,ぺぺぺぺ,-83.83809524,5 7,,,,,ほげ,ぴよ,7,ぺぺ,-104.0952381,6
回答: かっての経験を元に状況を再現してみました。 示されている例文をメモ帳にコピペして、それを読み込んで改ざんして保存。 その後に、再読込みをしました。 private sub コマンド0_click() dim i as integer dim n as integer dim datas() as string dim newdata as string datas() = filereadarray("d:temp\text.txt") n = ubound(datas()) newdata = datas(0) & chr(10) for i = 1 to n newdata = newdata & datas(i) & chr(10) next i filewrite "d:\temp\text_new.txt", newdata end sub private sub コマンド19_click() dim strdata as string open "d:\temp\text_new.txt" for input as #1 do while not eof(1) line input #1, strdata debug.print strdata exit do loop close #1 end sub 結果、全行がイミディエイトウインドウに表示されました。 もう、20年も前にもなりますが、ggtの技術者が書いたアプリケーションにこの手の誤りがありました。 米国で最初に製図機を開発した老舗の優秀なプログラマでもミスをするということです。 chr(10)=>vbcrlf に修正すると1行目だけが表示されましたので、まず、この手のミスだと思います。