
新人研修で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 *

No.2ベストアンサー
- 回答日時:
質問のあった日にちを考えるともう解決したかもしれませんが
回答してみます。
質問内容とソースを見る限りでの推測ですが、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 *
No.1
- 回答日時:
RPGはしばらくぶりなので自信はないのですが一応。
FNDのTAGの位置がおかしいので、
このプログラムだと、おそらく、
CMFILEがVALIDであろうとINVALIDであろうと
WPO0001Rに出力をしてしまいます。
それがエラーの原因ではないでしょうか?
オーバーフローというエラーだからといって、
本当にオーバーフローだとは限らないことがあります。
デバッグモードで動きを確認してみてはいかがでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) シフト表のコマで「ブロック」されている前の時間の「出」を同一列の「休」と入れ替えたいがふぇきません。 2 2023/08/02 18:49
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Ruby VBA 2 2023/01/14 14:14
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- その他(プログラミング・Web制作) PythonでLoopを使って配列内の文字列を結合する。そして [] を削除する 1 2022/03/31 23:28
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
accessでクエリをExcelにエクス...
-
loop が止まらなくて困ってます。
-
CSVファイルの時刻の形式について
-
VBA 参照先で選んだファイルを...
-
Microsoft Outlookで、vCardを...
-
Pythonで元CSVファイルの一部列...
-
COBOL、項目末尾に空白がある場...
-
AccessのレポートからPDFをペー...
-
ACCESS エクスポート ダイアロ...
-
Excel で「OLE は現在使用でき...
-
コマンドプロンプトのテキスト...
-
Thunderbird 受信メールからの...
-
Appletにて入力文字のファイル...
-
コーディングについて。
-
ファイル操作について。
-
WORDのVBAで差し込み印刷時、デ...
-
Microsoftの異常?リネームが出...
-
PDF表示の動的切り替えについて
-
ATTファイルってどうやって開け...
-
vimをアウトラインエディタのよ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
accessでクエリをExcelにエクス...
-
CSVファイルの時刻の形式について
-
コマンドプロンプトのテキスト...
-
Thunderbird 受信メールからの...
-
COBOL、項目末尾に空白がある場...
-
Acrobat参照設定
-
エクセルVBAでMHTMLで保存したW...
-
accessのリポートを、excelに出...
-
AccessのレポートからPDFをペー...
-
Excel で「OLE は現在使用でき...
-
エクセルが裏で動いたままなん...
-
CSV形式で保存するとファイ...
-
“ファイルに出力”した印刷ファ...
-
ファイナルカットで編集した動...
-
ショートカットで起動した場合...
-
PHP:unzipコマンドにおけるエ...
-
TransferSpreadsheetでフルパス...
-
EXCEL VBAでのCSVファイル読み...
-
MDI形式のファイルから文字をき...
-
指定されたファイルの関数名・...
おすすめ情報