EOF

答7-10-2を実行してから答7-10-3を実行してみよう。この時、xx.txtを1行削除して676行未満であったらどうなるだろうか?

以下のようなエラーが発生する。

 

エラーは

EndOfStreamException ストリームの終わりの例外

と表示されている。これはデータの終わりに達してからさらに無理にデータを読み続けようとしたという意味だ。

ファイルの終わりでプログラムを終了するにはEOF関数を使う。

EOF = End Of File = ファイルの終わり

という意味であり、ファイルの終わりに達したかどうかを判定できる。

EOFとForの違いを示す。

676行しか処理できない 何行であっても正しく動作
        
For n = 1 To 676
    Input(1, x)
    PrintLine(2, n & " : " & x)
Next
 
        
n = 0
Do While Not EOF(1)
    n = n + 1
    Input(1, x)
    PrintLine(2, n & " : " & x)
Loop
   

それでは、これを参考に答7-10-3のプログラムをEOFを用いた方法に修正しよう。

676行未満や677行以上のファイルを処理してみて、正しく動作することを確認しよう。