Сортировка данных в файл или объединение двух или более файлов является общей необходимости почти во всех бизнес-ориентированными приложениями. Сортировка используется для организации отчеты либо в порядке возрастания или убывания, так что последовательной обработки данных может быть выполнена. Существует два метода, которые используются для сортировки файлов в COBOL:
Внешней сортировки используется для сортировки файлов с помощью утилиты сортировка в JCL. мы обсуждали это в JCL главы. В настоящее время, мы будет сосредоточена на внутренней сортировки.
Внутренний порядок сортировки используется для сортировки файлов с помощью в программе цифровую. Сортировать глагол используется для сортировки в файл.
Из трех файлов используются в порядок сортировки в COBOL:
Входной файл - файл, который мы для сортировки по возрастанию и по убыванию.
Работу файл используется для хранения записей во время сортировки процесса. Входной файл записи переносятся в работе файл для процесс сортировки. Этот файл должен быть определен в File-Section под SD запись.
Выходной файл - файл, который мы получаем после процесс сортировки. Это окончательный результат своего рода "глагол.
Ниже синтаксис для сортировки файл:
SORT work-file ON ASCENDING KEY rec-key1 [ON DESCENDING KEY rec-key2] USING input-file GIVING output-file.
Сортировать выполняет следующие операции:
Открывается рабочий файл на I-O режим, вход-файл в режиме ввода и вывода в файл в режиме выхода.
Перевод записей в входного файла для работы файл.
Сортирует сортировать файл в порядке возрастания/убывания последовательности rec-ключ.
Перевод сортировать записи в файл в выходной файл.
Закрывает входной файл, и выходной файл, и удаляет-файл.
В следующих ниже пример вход входной файл, который должен быть отсортированы в порядке возрастания.
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT INPUT ASSIGN TO IN. SELECT OUTPUT ASSIGN TO OUT. SELECT WORK ASSIGN TO WRK. DATA DIVISION. FILE SECTION. FD INPUT. 01 INPUT-STUDENT. 05 STUDENT-ID-I PIC 9(5). 05 STUDENT-NAME-I PIC A(25). FD OUTPUT. 01 OUTPUT-STUDENT. 05 STUDENT-ID-O PIC 9(5). 05 STUDENT-NAME-O PIC A(25). SD WORK. 01 WORK-STUDENT. 05 STUDENT-ID-W PIC 9(5). 05 STUDENT-NAME-W PIC A(25). PROCEDURE DIVISION. SORT WORK ON ASCENDING KEY STUDENT-ID-O USING INPUT GIVING OUTPUT. DISPLAY 'Sort Successful'. STOP RUN.
JCL для выполнения выше COBOL программы:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C //STEP1 EXEC PGM=HELLO //IN DD DSN=INPUT-FILE-NAME,DISP=SHR //OUT DD DSN=OUTPUT-FILE-NAME,DISP=SHR //WRK DD DSN=&&TEMP
При компиляции и выполнения этой программы, она производит следующие результаты:
Sort Successful
Два или более одинаково выверенной файлы объединяются с помощью объединения заявление. Файлы, используемые в процесс слияния.
Ниже синтаксис для объединения двух или более файлов:
MERGE work-file ON ASCENDING KEY rec-key1 [ON DESCENDING KEY rec-key2] USING input-1, input-2 GIVING output-file.
Объединение выполняет следующие операции:
Открывает работу файл на I-O режим, вход-файлов в режиме ввода и вывода в файл в режиме выхода.
Перевод записей в вход-файлы для работы файл.
Сортирует сортировать файл в порядке возрастания/убывания последовательности rec-ключ.
Перевод сортировать записи в файл в выходной файл.
Закрывает входной файл, и выходной файл, и удаляет-файл.
В следующем примере, вход1 и INPUT2 вход в файлы, которые должны быть объединены в порядке возрастания:
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT INPUT1 ASSIGN TO IN1. SELECT INPUT2 ASSIGN TO IN2. SELECT OUTPUT ASSIGN TO OUT. SELECT WORK ASSIGN TO WRK. DATA DIVISION. FILE SECTION. FD INPUT1. 01 INPUT1-STUDENT. 05 STUDENT-ID-I1 PIC 9(5). 05 STUDENT-NAME-I1 PIC A(25). FD INPUT2. 01 INPUT2-STUDENT. 05 STUDENT-ID-I2 PIC 9(5). 05 STUDENT-NAME-I2 PIC A(25). FD OUTPUT. 01 OUTPUT-STUDENT. 05 STUDENT-ID-O PIC 9(5). 05 STUDENT-NAME-O PIC A(25). SD WORK. 01 WORK-STUDENT. 05 STUDENT-ID-W PIC 9(5). 05 STUDENT-NAME-W PIC A(25). PROCEDURE DIVISION. MERGE WORK ON ASCENDING KEY STUDENT-ID-O USING INPUT1, INPUT2 GIVING OUTPUT. DISPLAY 'Merge Successful'. STOP RUN.
JCL для выполнения выше COBOL программы:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C //STEP1 EXEC PGM=HELLO //IN1 DD DSN=INPUT1-FILE-NAME,DISP=SHR //IN2 DD DSN=INPUT2-FILE-NAME,DISP=SHR //OUT DD DSN=OUTPUT-FILE-NAME,DISP=SHR //WRK DD DSN=&&TEMP
При компиляции и выполнения этой программы, она производит следующие результаты:
Merge Successful