4:Re: 久々COBOL85を見ました。(AT END が無視されて、再度、DELETE処理を行い、 不正十進数エラーで アボートしてしまいます) 江須扇 07/16 11:02 私も久々に見るので、記憶違いかもしれませんが、 プログラム内でFILE STATUSを一か所も使ってない場合は AT END で再読み込みを実行すると命令実行順序エラーで エラー表示するのではと記憶しております。 しかしながらFILE STATUSを使っている場合は その命令でOSからのエラーは表示されず。 次の行で必ずSTATUSをIF命令で確かめる必要が あると思います。 また、DELETE命令で不正十進数はエラー出ないと記憶しております。 説明上省略してあるのでしょうがREADの後、何らかの処理でエラーが出ていると考えます。 対応方法は 1.全てのFILE STATUSをコメントにして OSのエラー機能のみで実行する 2.全ての入出力命令(OPEN、CLOSE、READ、DELETE等)の直後でSTATUSを確認して全て自己管理にする のどちらかにする必要があります。 中途半端(すいません言葉がきついかも)にSTATUSを確認すると正しい判定ができません。 まずはそこをご確認ください。 PS: それにしても旧100からCOBOLがあったのでそれを引き継いだプログラムが多いので GO TO ありありのプログラムはやむを得ないかもしれませんが 新規であればCOBOL85はEND−XXXとPERFORM を使った構造化プログラムが作成が可能になります。 データベースのSELECTと命令と組み合わせると かなりすっきりしたプログラムになります。 いまさらですが参考の為に蛇足を書きました。 |