You are on page 1of 2

IDENTIFICATION DIVISION.

PROGRAM-ID. SORTPGM2.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT SORT-FILE ASSIGN TO SORTWORK.
DATA DIVISION.
FILE SECTION.
SD SORT-FILE
RECORD CONTAINS 11 CHARACTERS
DATA RECORD SORT-RECORD.
01 SORT-RECORD.
05 SORT-REC.
10 SORT-ID PIC X(4).
10 FILLER PIC X.
10 SORT-NAME PIC X(6).

WORKING-STORAGE SECTION.
01 WS-TABLE.
05 WS-TABLE-ENTRY OCCURS 5 TIMES
INDEXED BY TAB-INDX.
10 WS-TAB-ID PIC X(4).
10 FILLER PIC X.
10 WS-TAB-NAME PIC X(6).
01 WS-TAB PIC X(1) VALUE 'Y'.
88 WS-TAB-END VALUE 'N'.

PROCEDURE DIVISION.
MOVE '0003 MAHESH0005 GANESH0004 RAMESH0002 NARESH0001 SOMESH ' TO WS-TABLE
DISPLAY 'RECORDS BEFORE SORTING : '.
DISPLAY '------------------------'.
PERFORM VARYING TAB-INDX FROM 1 BY 1 UNTIL TAB-INDX > 5
DISPLAY WS-TABLE-ENTRY(TAB-INDX)
END-PERFORM.
DISPLAY ''.
DISPLAY 'SORTING STARTED..............'.
SORT SORT-FILE
ON ASCENDING KEY WS-TAB-ID
INPUT PROCEDURE SORT-INPUT
OUTPUT PROCEDURE SORT-OUTPUT.
DISPLAY ''.
IF SORT-RETURN =0
DISPLAY "SORT ENDED NORMALLY. SORT-RETURN = " SORT-RETURN
ELSE
DISPLAY "SORT ENDED ABNORMALLY. SORT-RETURN = " SORT-RETURN
END-IF.
DISPLAY ''.
DISPLAY 'RECORDS AFTER SORTING : '.
DISPLAY '------------------------'.
PERFORM VARYING TAB-INDX FROM 1 BY 1 UNTIL TAB-INDX > 5
DISPLAY WS-TABLE-ENTRY(TAB-INDX)
END-PERFORM.
DISPLAY ''.
DISPLAY 'SORTING ENDED..............'.
STOP RUN.

SORT-INPUT SECTION.
PERFORM VARYING TAB-INDX FROM 1 BY 1 UNTIL TAB-INDX > 5
RELEASE SORT-RECORD FROM WS-TABLE-ENTRY(TAB-INDX)
END-PERFORM.

SORT-OUTPUT SECTION.
PERFORM VARYING TAB-INDX FROM 1 BY 1 UNTIL TAB-INDX > 5
RETURN SORT-FILE INTO WS-TABLE-ENTRY(TAB-INDX)
AT END DISPLAY 'Out Of Records In SORT File'
END-RETURN
END-PERFORM.

You might also like