テキストファイルのLine Inputでの読込


へそのを  2004-06-07 20:40:27  No: 113768  IP: [192.*.*.*]

テキストファイルをLine Inputで読み込んで語句を検索して
ヒットすればその後の数行のデータを読み込むという動作をさせているのですが
データが抜けている個所がいくつかあったのでその部分をの処理を確かめてみると
検索にヒットした後の読込で先頭に戻って読み込んでいることがわかりました。
この現象は何が原因なのでしょうか?ある1部分だけこういう処理が行われているようで、大半はきちんと正常に処理されるので余計に原因がわかりません。

編集 削除
Max  2004-06-07 21:05:25  No: 113769  IP: [192.*.*.*]

>検索にヒットした後の読込で先頭に戻って読み込んでいることがわかりました。
これはどのようにして確認されたのでしょうか?
ソースなどを書いて「ここにブレークポイントを置いて、この時にこの値が
こうだったから、総判しました」という様な説明だとありがたいです。

編集 削除
Max  2004-06-07 21:06:11  No: 113770  IP: [192.*.*.*]

×総判しました
○そう判断しました

編集 削除
へそのを  2004-06-07 21:40:20  No: 113771  IP: [192.*.*.*]

FileNo = FreeFile

    Do While Not EOF(3)
        If strProjectName = ProjectName Then
            Exit Do
        End If
        If Left(flvReadLine3, 13) = "Project Name:" Then
            strProjectName = Trim(Mid(flvReadLine3, 14))
        End If
        Line Input #FileNo, flvReadLine3
    Loop

    If EOF(3) Then
        Close #FileNo
        Exit Sub
    End If

        Do Until flvReadLine3 <> ""
            
            If EOF(3) Then
                Close #FileNo
                Exit Sub
            End If
            
            Line Input #FileNo, flvReadLine3
        Loop

説明不足でした。上のようなソースで最後のDo Untilの部分の
処理で必要のない行を読み飛ばしてデータを取得するのですが、
その際のLine Inputの部分でテキストファイルの先頭の行を
読み込んでしまうのです。

編集 削除
へそのを  2004-06-07 21:43:27  No: 113772  IP: [192.*.*.*]

なおブレークポイントを設置して処理を行い判断しました。

編集 削除
Max  2004-06-07 23:27:25  No: 113773  IP: [192.*.*.*]

ファイルを開いている部分が記述されていないのでなんともいえませんが
開いたファイルのファイル番号はEOF関数で判定している3に固定されて
いるんでしょうか?
また、FileNo変数で取得したファイル番号が使われているようですが
それとファイル番号3で開かれたファイルの関係が上記ソースでは
今ひとつつかみきれません。

Line Inputで行を読んでいく処理は下記のような内容の記述になっているん
でしょうか?

FileNo=FreeFile
Open("file name") For Input As #FileNo

Do While Not EOF(FileNo)
  Line Input #FileNo,strLineData
  'その他の処理
Loop

編集 削除