READ 命令によってレコードを読めば、それ以上レコードがない、
つまりファイルの終わりに達したということが判明するが、これを
レコードを読まずに判定できる方法はないものだろうか ?
実は、実際にレコードを読まなくても SETGT によって
キーを位置付けるだけで判定することができるのである。
SETGT (上限のセット) |
・・・・・・ |
キーをセットした後ろにレコードが存在しない場合は 54桁目の標識がオンになり、 NOT %FOUND となる。
|
|---|
【例】
C 'NV-CF1 ' SETGT SHOHIN 50 C IF NOT %FOUND C 'NOT FOUND' DSPLY ANS 1 C ELSE C 'FOUND' DSPLY ANS 1 C ENDIF
【解説】
商品マスター(SHOHIN) に対して NV-CF1 という商品コードで SETGT でセット
した場合に NV-CF1 の次のレコードが存在しない場合は
標識 50 がオンになり、NOT FOUND と表示される。
レコードを読まずに EOF を知ることができるようにするのは意味がある。
READ 命令でレコードを実際に読んだのでは、レコードが存在したしたときには
読まれたレコードのフィール値が書き換えられたしまうからである。
フィールド値を更新せずら、あらかじめ次のレコードは、もはや存在しない、ということを
知ることができれば Web アプリケーションで HTML に、そのことを非表示(HIDDEN) で
記述したおけば、エンド・ユーザーが「次へ」ボタンを押したときに
JavaScript の alert によって「レコードがありません。」のようなエラー・メッセージを
直ちに出すことができる。
