Как реализовать сортировку данных в COBOL?

Пользователь

от forest , в категории: Другие , 2 месяца назад

Как реализовать сортировку данных в COBOL?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от velma , 2 месяца назад

@forest 

В COBOL сортировка данных может быть реализована с использованием операции SORT. Вот базовый пример, как это можно сделать:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
IDENTIFICATION DIVISION.
PROGRAM-ID. SortExample.

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT InFile ASSIGN TO "input.dat"
        ORGANIZATION IS LINE SEQUENTIAL.
    SELECT OutFile ASSIGN TO "output.dat"
        ORGANIZATION IS LINE SEQUENTIAL.
    SELECT SortFile ASSIGN TO SORTWORK.

DATA DIVISION.
FILE SECTION.
FD InFile.
01 InRec.
   05 InField1    PIC X(10).
   05 InField2    PIC X(10).

FD OutFile.
01 OutRec.
   05 OutField1   PIC X(10).
   05 OutField2   PIC X(10).

SD SortFile.
01 SortRec.
   05 SortField1  PIC X(10).
   05 SortField2  PIC X(10).

PROCEDURE DIVISION.
BEGIN.
    OPEN INPUT InFile
    OPEN OUTPUT OutFile

    SORT SortFile ON ASCENDING KEY SortField1
        INPUT PROCEDURE IS GetSortData
        OUTPUT PROCEDURE IS WriteSortData

    CLOSE InFile
    CLOSE OutFile
    STOP RUN.

GetSortData.
    READ InFile INTO InRec
    AT END RETURN
    NOT AT END
        MOVE InField1 TO SortField1
        MOVE InField2 TO SortField2
        RELEASE SortRec
        PERFORM GetSortData
    END-READ.

WriteSortData.
    RETURN SortFile INTO SortRec
    AT END RETURN
    NOT AT END
        MOVE SortField1 TO OutField1
        MOVE SortField2 TO OutField2
        WRITE OutRec
        PERFORM WriteSortData
    END-RETURN.


Пояснение к коду:

  • FD и SD: Определяют файловую, рабочую (SortFile) и записи (InRec, OutRec, SortRec).
  • SORT: Основная ко***** сортировки. Указывает имя рабочего файла SortFile и ключ сортировки SortField1.
  • INPUT PROCEDURE: Указана процедура GetSortData, которая читает данные из входного файла и помещает их в рабочий файл для сортировки.
  • OUTPUT PROCEDURE: Указана процедура WriteSortData, которая читает отсортированные данные из рабочего файла и записывает их в выходной файл.


Этот базовый пример иллюстрирует сортировку данных с использованием COBOL. Не забудьте настроить проект и файлы в соответствии с требованиями вашей среды.