COBOL - внутренний порядок сортировки


Advertisements

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

Объединение "глагол

Два или более одинаково выверенной файлы объединяются с помощью объединения заявление. Файлы, используемые в процесс слияния.

  • Входные файлы : вход-1, Вход должности класса Д-2
  • Работу файл
  • Выходной файл

Синтаксис

Ниже синтаксис для объединения двух или более файлов:

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
Advertisements