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行以上のファイルを処理してみて、正しく動作することを確認しよう。