トップページ > プログラム > 2015年10月22日 > kqL6nEw1

書き込み順位&時間帯一覧

14 位/156 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000100000034



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
【初心者歓迎】最新COBOLについての質問スレ

書き込みレス一覧

【初心者歓迎】最新COBOLについての質問スレ
98 :デフォルトの名無しさん[sage]:2015/10/22(木) 16:39:55.27 ID:kqL6nEw1
>>97
もっと大きなくくりで何をやりたいのか聞く必要があるが、
チェックエラーがある時だけ、RETURN-CODEに5点入れて終了
JOB制御で0点なら次の処理。とかにすれば、全件正常の時だけ次のステップが流れる。
【初心者歓迎】最新COBOLについての質問スレ
100 :デフォルトの名無しさん[sage]:2015/10/22(木) 23:30:35.35 ID:kqL6nEw1
そもそも正常、エラーの振り分けをやって、エラーのみリスト出力の方が綺麗だとおもう。
エラー有り時は、JOB正常終了させなければ、次の処理にも進まないし。

でも、あなたの仕様で一番簡単なのは、こんな感じかな?
OPENCLOSE技はあまりカッコいいとは言えないけど、内部テーブルやソート使うやり方よりシンプルに出来る気がする。

PROC-RTN.
IF エラーあり?
THEN MOVE 1TO ERROR-SW
MOVE "END" TO END-SW
END-IF

END-RTN
CLOSE FILE1.
*エラー時、出力データ削除
IF ERROR-SW = 1
THEN OPEN OUTPUT FILE1
CLOSE FILE1
END-IF
【初心者歓迎】最新COBOLについての質問スレ
101 :デフォルトの名無しさん[sage]:2015/10/22(木) 23:33:44.14 ID:kqL6nEw1
COBOLはレコード処理なので、
正常時のみ全件出力よりも、とりあえす処理済みレコード出力しておいて、エラー時に出力を無かったことにする方が簡単。
【初心者歓迎】最新COBOLについての質問スレ
102 :デフォルトの名無しさん[sage]:2015/10/22(木) 23:50:06.84 ID:kqL6nEw1
もっと真面目に書いてみた

PERFORM INIT-RTN.
PERFORM PROC-RTN
UNTIL END-SW = "END".
PERFORM END-RTN.

INIT-RTN.
OPEN INPUT INFILE.
OPEN OUTPUT OUTFILE.
PERFORM READ-RTN.
EXIT.

PROC-RTN.
IF エラーなし?
THEN WRITE OUT-REC FROM IN-REC
ELSE MOVE 1TO ERROR-SW
MOVE "END" TO END-SW
END-IF
PERFORM READ-RTN.
EXIT.

END-RTN
CLOSE INFILE.
CLOSE OUTFILE.
*エラー時、出力データ全件削除
IF ERROR-SW = 1
THEN OPEN OUTPUT OUTFILE
CLOSE OUTFILE
END-IF.
EXIT.


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。