いけず言葉しりとり

COBOLで以下のエラーが発生しています。

xxファイルの'READ'文で,実行順序の誤りが発生しました.'AT-END '. PGM=xx. LINE=xxx

PGの内容としては、
2つのinputファイルを読み込み、マッチング処理を行ってoutputするという処理です。

エラー行数は、2つ目のinputファイルをreadするところでエラーとなっています。
2つの異なったファイルをreadすることができないのでしょうか。
どこがNGなのかわかりません。

追記すべき箇所があれば記載します。
アドバイスをお願いします。

A 回答 (2件)

実行順序の誤りということは、


OPENしていないのにREADした。CLOSEしてからREADした。そういうエラーです。

2つの異なるファイルを読むのはできます。
OSとメモリーが許す限り、いくつでも開いて読むことができますね。

この回答への補足

早速のご回答ありがとうございます。
DISPLAYを入れてみましたが、OPEN,CLOSEはできているようでした。

ファイルREADのタイミングで、DISPLAYをいれてみると以下のようになりました。
FL1 READ
FL2 READ
FL2 READ
FL1 READ
FL2 READ

FL2はCSVファイルで、手作成しています。
データは1行しか格納されていません。
一回目はちゃんと読めているようですが、2回目の読み込みでAT ENDの判定が
うまくいってないような雰囲気です・・・

補足日時:2015/01/14 12:02
    • good
    • 0
この回答へのお礼

記載しながら、気づきました!!
FL2を最後まで読み込んでしまっているため、
2回目の読み込みでエラーになっていたようです。

FL1のレコードを元に、FL2の全レコードを検索したかったので、
FL2のOPEN,CLOSEタイミングを変更し、毎度1レコード目から検索するように
したところうまくいきました!!!

アドバイスいただきありがとうございました。

お礼日時:2015/01/14 12:31

コンパイラやOSの型番も書いた方がよいかもしれませんね。



もちろん2つの異なったファイルを読み込む事はOKです。

・ファイルのオープンの仕方は間違っていないか?SAMファイルをシーケンシャル読み出しなのか、ISAMをシーケンシャル読み出しなのかでも変わると思います。
・ファイル長、ブロック長等に間違いはないか?

この回答への補足

早速の回答ありがとうございます。
コンパイラ:NETCOBOL
OS:Windows 7 です。

上記回答の補足にも記載しましたが、
FL2のインプットファイルはCSVファイルで手作成しました。
このCSVファイルには
ORGANIZATION IS LINE SEQUENTIAL.
の定義を記載しています。

補足日時:2015/01/14 12:07
    • good
    • 0
この回答へのお礼

記載しながら、気づきました!!
FL2を最後まで読み込んでしまっているため、
2回目の読み込みでエラーになっていたようです。

FL1のレコードを元に、FL2の全レコードを検索したかったので、
FL2のOPEN,CLOSEタイミングを変更し、毎度1レコード目から検索するように
したところうまくいきました!!!

アドバイスいただきありがとうございました。

お礼日時:2015/01/14 12:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報