Menu

COBOL - Sort Output File


Se a saída da classificação ou mesclagem for um arquivo, descreva o arquivo seguindo o procedimento abaixo.

Código da seguinte forma:

  • Escreva uma cláusula SELECT no parágrafo FILE-CONTROL da ENVIRONMENT DIVISION para nomear o arquivo de saída. Por exemplo:

    ENVIRONMENT DIVISION.
    INPUT-OUTPUT SECTION.
    FILE-CONTROL.
        SELECT Output-File ASSIGN TO OutFile.
    

    Output-File é o nome do arquivo em seu programa. Use este nome para se referir ao arquivo.

  • Descreva o arquivo de saída (ou arquivos ao mesclar) em uma entrada FD na SEÇÃO DE ARQUIVO da DIVISÃO DE DADOS. Por exemplo:

    DATA DIVISION.
    FILE SECTION.
    FD  Output-File
        LABEL RECORDS ARE STANDARD
        BLOCK CONTAINS 0 CHARACTERS
        RECORDING MODE IS F
        RECORD CONTAINS 100 CHARACTERS.
    01  Output-Record   PIC X(100).
    


Exemplo: Vejamos o exemplo abaixo,

IDENTIFICATION DIVISION.
DATA DIVISION.
FILE SECTION.
SD  OUR-FILE.
01  OUR-SORT-REC.
    03  SORT-KEY                PIC X(10).
    03  FILLER                  PIC X(70).
. . .
WORKING-STORAGE SECTION.
01  WS-SORT-REC                 PIC X(80).
01  END-OF-SORT-FILE-INDICATOR  PIC X VALUE 'N'.
    88  NO-MORE-SORT-RECORDS          VALUE 'Y'.
. . .
PROCEDURE DIVISION.
A-CONTROL SECTION.
    SORT OUR-FILE ON ASCENDING KEY SORT-KEY
      INPUT PROCEDURE IS B-INPUT
      OUTPUT PROCEDURE IS C-OUTPUT.
    . . .
B-INPUT SECTION.
    MOVE . . .. . .. TO WS-SORT-REC.
    RELEASE OUR-SORT-REC FROM WS-SORT-REC.
    . . .
C-OUTPUT SECTION.
    DISPLAY 'STARTING READS OF SORTED RECORDS: '.
    RETURN OUR-FILE
      AT END
        SET NO-MORE-SORT-RECORDS TO TRUE.
    PERFORM WITH TEST BEFORE UNTIL NO-MORE-SORT-RECORDS
      IF SORT-RETURN = 0 THEN
        DISPLAY 'OUR-SORT-REC = ' OUR-SORT-REC
        RETURN OUR-FILE
          AT END
            SET NO-MORE-SORT-RECORDS TO TRUE
      END-IF
    END-PERFORM.