VB2005のファイル読込でDo While Not EOFを使用するには?


ひよこPG  2008-02-15 02:13:49  No: 144450  IP: 192.*.*.*

いつもお世話になります。VB2005でテキストファイル(中身は1レコードのみ)をFileOpen関数の
ランダムアクセスを使用し、FileGet関数で値を取得しました。しかし、取得後に続くDo While Not EOF〜LOOP内の
処理が実行されません。同じファイルでVB6版で使用したら問題なく実行されたのですが。
どのように対応したらよろしいのでしょうか?
よろしくお願い致します。

ソース

    Structure TypeUkeData  ' テキスト・データ部(Length = 2048)
        <VBFixedArray(7), MarshalAs(UnmanagedType.ByValArray, SizeConst:=8)> Dim b_UkeDate() As Byte     '受付日
        <VBFixedArray(7), MarshalAs(UnmanagedType.ByValArray, SizeConst:=8)> Dim b_UkeTime() As Byte      '受付時刻
        <VBFixedArray(3), MarshalAs(UnmanagedType.ByValArray, SizeConst:=4)> Dim b_UkeCnt() As Byte       '件数
        <VBFixedArray(79), MarshalAs(UnmanagedType.ByValArray, SizeConst:=80)> Dim b_UkeNaiyo() As Byte   '内容

        Public Sub Initialize()
            ReDim b_UkeDate(7)
            ReDim b_UkeTime(7)
            ReDim b_UkeCnt(3)
            ReDim b_UkeNaiyo(79)
        End Sub
    End Structure



Sub ReadFile

        Dim b_UkeData As TypeUkeData
        Dim i_FileNo As Short
        Dim i_RecNo As Short 


  call b_UkeData.Initialize()


        i_FileNo = FreeFile() 
        FileOpen(i_FileNo, "C:\UkeData.tmp", OpenMode.Random, , , 100)

        ' 最初のレコードを読み込む
        i_RecNo = 1
        FileGet(i_FileNo, b_UkeData, i_RecNo)  ←b_UkeDataに確かに値は入っている

  
        Do While Not EOF(i_FileNo)    ←ループ内の処理に一度も入らず次のFileCloseにいってしまう

     CALL SubSpilit(b_UkeData) 

            ' 次のレコードを読み込む
            i_RecNo = i_RecNo + 1
            FileGet(i_FileNo, b_UkeData, i_RecNo)
        Loop

        FileClose(i_FileNo)

End Sub

編集 削除
ひよこPG  2008-02-15 02:17:56  No: 144451  IP: 192.*.*.*

誤 ' テキスト・データ部(Length = 2048)
正  'テキスト・データ部(Length = 100)
コメントなので影響はないと思いますが。念の為。

編集 削除
やじゅ  2008-02-15 11:24:15  No: 144452  IP: 192.*.*.*

VB2005のファイル読込でDo While Not EOFを使用するには?
http://okwave.jp/qa3777052.html

最初のレコードを読み込む部分は削除
Do While Not EOF(1)  i_FileNoはやめる

編集 削除