
Сортировка данных в файл или объединение двух или более файлов является общей необходимости почти во всех бизнес-ориентированными приложениями. Сортировка используется для организации отчеты либо в порядке возрастания или убывания, так что последовательной обработки данных может быть выполнена. Существует два метода, которые используются для сортировки файлов в 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