test: add HINA type-specific COBOL test data suite (10 programs, 8/10 pass)
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
* HINA007 - キーブレイク(集計)
|
||||
>>SOURCE FORMAT IS FREE
|
||||
* キー切替時の累計集計処理
|
||||
* 期待: 2 IF, 1 PERFORM, 5 段落, キーブレイク有
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. HINA007.
|
||||
ENVIRONMENT DIVISION.
|
||||
INPUT-OUTPUT SECTION.
|
||||
FILE-CONTROL.
|
||||
SELECT IN-FILE ASSIGN TO "TRANS.DAT"
|
||||
ORGANIZATION IS LINE SEQUENTIAL.
|
||||
SELECT OUT-FILE ASSIGN TO "SUM.DAT"
|
||||
ORGANIZATION IS LINE SEQUENTIAL.
|
||||
DATA DIVISION.
|
||||
FILE SECTION.
|
||||
FD IN-FILE.
|
||||
01 IN-REC.
|
||||
05 IN-KEY PIC X(05).
|
||||
05 IN-AMT PIC 9(07).
|
||||
FD OUT-FILE.
|
||||
01 OUT-REC PIC X(30).
|
||||
WORKING-STORAGE SECTION.
|
||||
01 WS-PREV-KEY PIC X(05).
|
||||
01 WS-SUM PIC 9(10).
|
||||
01 WS-EOF PIC X VALUE 'N'.
|
||||
88 EOF-VALUE VALUE 'Y'.
|
||||
01 WS-FIRST PIC X VALUE 'Y'.
|
||||
88 FIRST-REC VALUE 'Y'.
|
||||
PROCEDURE DIVISION.
|
||||
0000-MAIN.
|
||||
OPEN INPUT IN-FILE.
|
||||
OPEN OUTPUT OUT-FILE.
|
||||
PERFORM 1000-READ.
|
||||
PERFORM 2000-PROCESS UNTIL EOF-VALUE.
|
||||
PERFORM 3000-WRITE-BREAK.
|
||||
CLOSE IN-FILE OUT-FILE.
|
||||
STOP RUN.
|
||||
1000-READ.
|
||||
READ IN-FILE INTO IN-REC
|
||||
AT END MOVE 'Y' TO WS-EOF.
|
||||
2000-PROCESS.
|
||||
IF FIRST-REC THEN
|
||||
MOVE IN-KEY TO WS-PREV-KEY
|
||||
MOVE 'N' TO WS-FIRST.
|
||||
IF IN-KEY NOT = WS-PREV-KEY THEN
|
||||
PERFORM 3000-WRITE-BREAK
|
||||
MOVE IN-KEY TO WS-PREV-KEY
|
||||
MOVE 0 TO WS-SUM.
|
||||
ADD IN-AMT TO WS-SUM.
|
||||
PERFORM 1000-READ.
|
||||
3000-WRITE-BREAK.
|
||||
STRING WS-PREV-KEY WS-SUM DELIMITED BY SIZE
|
||||
INTO OUT-REC.
|
||||
WRITE OUT-REC.
|
||||
Reference in New Issue
Block a user