- 締切済み
COBOL 1:1のマッチングについて
こんばんは。プログラム作成が行き詰ってしまったので、 アドバイス頂けると幸いです。 要件:マスタから名前を検索する 出力番号、名前、合計点の3つ 【マスタファイル】 生徒番号 名前 (数字3桁) (全角6文字) ・ ・ ・ ・ ・ ・ 【トランザクションファイル】 生徒番号 合計点 (数字3桁) (数字3桁) ・ ・ ・ ・ 【出力ファイル】 生徒番号 氏名 合計点 001 ○○ □□ DATA DIVISION. FILE SECTION. FD INFILEM. 01 INRECM. 05 IM-ID PIC X(03). 05 IM-NAME PIC X(12). FD INFILET. 01 INRECT. 05 IT-ID PIC X(03). 05 IT-GOUKEI PIC 9(03). FD OUTFILE. 01 OUTREC. 05 O-ID PIC X(03). 05 O-NAME PIC X(12). 05 O-GOUKEI PIC ZZ9. WORKING-STORAGE SECTION. 01 WM-ID PIC X(03). 01 WT-ID PIC X(03). 01 W-GOUKEI PIC 9(03). PROCEDURE DIVISION. PERFORM MAE-SHORI THRU MAE-SHORI-EXIT PERFORM SHU-SHORI THRU SHU-SHORI-EXIT UNTIL WM-ID = HIGH-VALUE AND WT-ID = HIGH-VALUE PERFORM ATO-SHORI THRU ATO-SHORI-EXIT STOP RUN. MAE-SHORI. OPEN INPUT INFILEM INFILET OUTPUT OUTFILE MOVE SPACE TO WM-ID MOVE SPACE TO WT-ID READ INFILEM AT END MOVE HIGH-VALUE TO WM-ID END-READ IF WM-ID NOT = HIGH-VALUE THEN MOVE IM-ID TO WM-ID END-IF READ INFILET AT END MOVE HIGH-VALUE TO WT-ID END-READ IF WT-ID NOT = HIGH-VALUE THEN MOVE IT-ID TO WT-ID END-IF. MAE-SHORI-EXIT. EXIT. SHU-SHORI. IF WM-ID = WT-ID THEN PERFORM KOUSHIN THRU KOUSHIN-EXIT ELSE IF WM-ID < WT-ID THEN PERFORM SHUTURYOKU THRU SHUTURYOKU-EXIT ELSE PERFORM ERRORS THRU ERRORS-EXIT END-IF END-IF. SHU-SHORI-EXIT. EXIT. KOUSHIN. MOVE IT-GOUKEI TO W-GOUKEI MOVE IM-ID TO O-ID MOVE IM-NAME TO O-NAME MOVE W-GOUKEI TO O-GOUKEI WRITE OUTREC READ INFILEM AT END MOVE HIGH-VALUE TO WM-ID END-READ IF WM-ID NOT = HIGH-VALUE THEN MOVE IM-ID TO WM-ID END-IF READ INFILET AT END MOVE HIGH-VALUE TO WT-ID END-READ IF WT-ID NOT = HIGH-VALUE THEN MOVE IT-ID TO WT-ID END-IF. KOUSHIN-EXIT. EXIT. SHUTURYOKU. MOVE IM-ID TO O-ID MOVE IM-NAME TO O-NAME MOVE W-GOUKEI TO O-GOUKEI WRITE OUTREC READ INFILEM AT END MOVE HIGH-VALUE TO WM-ID END-READ IF WM-ID NOT = HIGH-VALUE THEN MOVE IM-ID TO WM-ID END-IF. SHUTURYOKU-EXIT. EXIT. ERRORS. DISPLAY "** ERROR ** IM-ID=" IM-ID " IT-ID=" IT-ID READ INFILET AT END MOVE HIGH-VALUE TO WT-ID END-READ IF WT-ID NOT = HIGH-VALUE THEN MOVE IT-ID TO WT-ID END-IF. ERRORS-EXIT. EXIT. ATO-SHORI. CLOSE INFILEM INFILET OUTFILE. ATO-SHORI-EXIT. EXIT. 上記のソースで実行すると 番号 名前 2桁の謎の数字が1レコードとしてでてきてしまいます。 詳しい方、ご教示くださいませ。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- maiko0318
- ベストアンサー率21% (1483/6969)
SHUTURYOKU.の中で W-GOUKEI をセットしていないからでは?
- ggggggggggg hhhhhhhhhhh(@tasketeqq1)
- ベストアンサー率15% (36/231)
マスタファイルってのは順編成なんすか、普通索引順編成にするでしょうよ、マスタは。