プロが教えるわが家の防犯対策術!

お世話になります。
今日仕事で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

A 回答 (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行目だけが表示されましたので、まず、この手のミスだと思います。

この回答への補足

お返事が遅くなりました。
有難うございます。 参考になりました。

補足日時:2007/08/24 00:36
    • good
    • 0

  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 等も試して残滓です。
    • good
    • 0

>したがって改行コードもあり認識しているはずなのですが・・・


改行コードが有るか否かは、バイナリダンプツール等を
使ってちゃんと確認しましょう。

>外には出せないデータですので
>家でこれを読ませると
外には出せないデータは通常、家にも持ち帰ったりして
はいけないはずですが?

この回答への補足

お返事有難うございます。
>改行コードが有るか否かは、バイナリダンプツール等を
>使ってちゃんと確認しましょう。
了解です。

>外には出せないデータは通常、家にも持ち帰ったりして
>はいけないはずですが?
伝わっていないようでしたが
外にはだしていません。あくまでイメージです。

補足日時:2007/08/18 08:48
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています