sorting - COBOL 排序事务文件

标签 sorting cobol

如何对具有此类记录的 tran 文件进行排序..

AT key taname username
AP key prname prshortname
DT key taname username
CT key taname username
CP key prname prshortname
DP key prname prshortname

我需要做的是在删除、添加、更改顺序中对这个 tran 文件进行排序.. 有什么办法吗?提前致谢..

AT = add task;
AP = add proj;
DT = delete task;
DP = delete proj;
CT = change task;
CP = change proj;

最佳答案

您可以将文件读入表中,并根据事务类型添加排序序列号。可以从表中查找排序序列号。然后根据排序顺序和记录中的键对表进行排序。例如,您的代码可以包括(语法并不完美,但应该为您指明正确的方向):

01  TRANSACTION-TYPES.

* 排序为删除添加更改

    05  FILLER                  PIC X(4) VALUE 'DT01'.
    05  FILLER                  PIC X(4) VALUE 'DP02'.
    05  FILLER                  PIC X(4) VALUE 'AT03'.
    05  FILLER                  PIC X(4) VALUE 'AP04'.
    05  FILLER                  PIC X(4) VALUE 'CT05'.
    05  FILLER                  PIC X(4) VALUE 'CP06'.

01  TRANS-TYPE-TABLE REDEFINES TRANSACTION-TYPES.

    05  TRANS-TYPE OCCURS 6 TIMES INDEXED BY TRANS-INDEX.
        10  TRANS-CODE          PIC XX.
        10  TRANS-SORT          PIC 99.

01  TRANSACTION-TABLE.

    05  TRANS-RECORD OCCURS 1 to 1000 TIMES DEPENDING ON TRANS-COUNT
        INDEXED BY TABLE-INDEX.
        10  TRANS-TABLE-SORT        PIC 99.
        10  TRANS-TABLE-DETAIL      PIC X(132).
...

ADD-RECORD-TO-TABLE.

    MOVE IN-RECORD TO TRANS-TABLE-DETAIL (TABLE-INDEX)
    SET TRANS-INDEX TO 1
    SEARCH TRANS-TYPE
        AT END MOVE HIGH-VALUE TO TRANS-TABLE-SORT (TABLE-INDEX)
        WHEN IN-RECORD-TRANS-CODE = TRANS-CODE (TRANS-INDEX)
            MOVE TRANS-SORT (TRANS-INDEX) TO TRANS-TABLE-SORT (TABLE-INDEX)
    .

...

SORT TRANS-RECORD

    ON ASCENDING KEY TRANS-TABLE-SORT
    ON ASCENDING KEY TRANS-TABLE-DETAIL.

关于sorting - COBOL 排序事务文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18626296/

相关文章:

cobol - 将 COBOL 中的 BINARY INTEGER 变量与 ALPHANUMERIC 变量进行比较

Cobol - 未找到备用 key

python - 我如何首先根据它们的单位(bit/s、Kbit/s 等)对特定的字典列表进行排序,然后根据它们的值对它们进行排序

c# - 如何将 LINQ 与具有并行数组的类一起使用?

cobol - COBOL如何存储和检索数据?

db2 - COBOL 将 0 添加到 COMPUTE 中的变量

php - 我如何对多个 mysql foreach 数组进行排序并需要它们在 php 中保持一致?

c - 按升序插入记录函数 - C 作业

java - 在已排序和未排序数组中查找公共(public)元素的 Big-O

c# - C# 程序员的 COBOL Copybook 规范