OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

loop が止まらなくて困ってます。

  • すぐに回答を!
  • 質問No.125803
  • 閲覧数83
  • ありがとう数1
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 14% (2/14)

新人研修でAS/400のRPG3を習ってます。
現在、AMFILEとCMFILEと言うファイルをAMCUSTと言うKEYで繋ぎ、WPO001と言うファイルにアウトプットする演習問題に取り組んでいるのですが、LOOPが止まらなく、WPO001がオーバーフローしてしまいます。何方か、もしよろしければ助けてください。わたしが書いたMAIN ROUTINE のプログラムは以下です。

C READ AMFILE 70*
C *IN,70 DOWEQ*ZERO *
C AMCUST CHAINCMFILE 60 *
C N60 GOTO FND *
C FND TAG *
C WRITEWPO001R *
C ENDDO *
C SETON LR *
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.1
レベル8

ベストアンサー率 38% (10/26)

RPGはしばらくぶりなので自信はないのですが一応。 FNDのTAGの位置がおかしいので、 このプログラムだと、おそらく、 CMFILEがVALIDであろうとINVALIDであろうと WPO0001Rに出力をしてしまいます。 それがエラーの原因ではないでしょうか? オーバーフローというエラーだからといって、 本当にオーバーフローだとは限らないことがあります。 デバッグモードで動き ...続きを読む
RPGはしばらくぶりなので自信はないのですが一応。

FNDのTAGの位置がおかしいので、
このプログラムだと、おそらく、
CMFILEがVALIDであろうとINVALIDであろうと
WPO0001Rに出力をしてしまいます。
それがエラーの原因ではないでしょうか?

オーバーフローというエラーだからといって、
本当にオーバーフローだとは限らないことがあります。

デバッグモードで動きを確認してみてはいかがでしょうか?


  • 回答No.2
レベル1

ベストアンサー率 0% (0/0)

質問のあった日にちを考えるともう解決したかもしれませんが 回答してみます。 質問内容とソースを見る限りでの推測ですが、AMFILEから読み込んだキーが CMFILEにも存在するときにWPO001Rに書き込むという流れで良いのでしょうか? その前提で話を致します。 sugiyameさんの回答にもあった通り、VALIDであろうとINVALIDであろうと WPO0001Rに出力をしてしまい ...続きを読む
質問のあった日にちを考えるともう解決したかもしれませんが
回答してみます。

質問内容とソースを見る限りでの推測ですが、AMFILEから読み込んだキーが
CMFILEにも存在するときにWPO001Rに書き込むという流れで良いのでしょうか?
その前提で話を致します。

sugiyameさんの回答にもあった通り、VALIDであろうとINVALIDであろうと
WPO0001Rに出力をしてしまいます。
それと、DO文から抜ける条件がその中に無い為、抜けることができず
永遠に同じ内容を書き込む結果になっていると思います。(INVALIDの時
何が書き込まれるかは分からないですが....)
これがオーバーフローの原因ではと思われます。

対応としてはまず、
1.INVALIDの場合はWRITEを行わない
2.DO文から抜ける条件をその中にいれる。
修正をしてみては如何でしょうか?

大きなお世話かもしれませんが修正例を書いておきます。

C READ AMFILE 70 *
C *IN70 DOWEQ*ZERO *
C AMCUST CHAINCMFILE 60 *
C N60 WRITEWPO001R *
C READ AMFILE 70 *
C ENDDO *
C SETON LR *
このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ