- ベストアンサー
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
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
かっての経験を元に状況を再現してみました。 示されている例文をメモ帳にコピペして、それを読み込んで改ざんして保存。 その後に、再読込みをしました。 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行目だけが表示されましたので、まず、この手のミスだと思います。
その他の回答 (2)
NewData = Datas(0) & Chr(10) For I = 1 To N NewData = NewData & Datas(I) & Chr(10) Next I は、別に意味ありません。 For I = 0 To N NewData = NewData & Datas(I) & Chr(10) Next I これでOK。 まあ、1行目だけ Chr(10)、2行目から vbCRLF 等も試して残滓です。
- don_go
- ベストアンサー率31% (336/1059)
>したがって改行コードもあり認識しているはずなのですが・・・ 改行コードが有るか否かは、バイナリダンプツール等を 使ってちゃんと確認しましょう。 >外には出せないデータですので >家でこれを読ませると 外には出せないデータは通常、家にも持ち帰ったりして はいけないはずですが?
補足
お返事有難うございます。 >改行コードが有るか否かは、バイナリダンプツール等を >使ってちゃんと確認しましょう。 了解です。 >外には出せないデータは通常、家にも持ち帰ったりして >はいけないはずですが? 伝わっていないようでしたが 外にはだしていません。あくまでイメージです。
補足
お返事が遅くなりました。 有難うございます。 参考になりました。