COBOL打印COPYBOOK字段的偏移和大小

2023-08-21  本文已影响0人  CodingCode

下面例子打印出FLD-B的偏移和大小。

        Identification Division.
        Program-ID. CALCOFF.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        01  BASE-PTR USAGE POINTER.
        01  BASE-VAL REDEFINES BASE-PTR PIC 9(9) COMP-5.
        01  FELD-PTR USAGE POINTER.
        01  FELD-VAL REDEFINES FELD-PTR PIC 9(9) COMP-5.
        01  FELD-OFF                    PIC 9(9) COMP-5.
        01 BASE-DATA.
           05 FLD-A          PIC X.
           05 FLD-B          PIC X(10).

        PROCEDURE DIVISION.
        MAIN-PARAGRAPH.
            SET BASE-PTR TO ADDRESS OF BASE-DATA.
            MOVE ADDRESS OF FLD-B TO FELD-PTR.

            MOVE FELD-VAL TO FELD-OFF.
            SUBTRACT BASE-VAL FROM FELD-OFF.
            DISPLAY "OFFSET=" FELD-OFF ",SIZE=" LENGTH OF FLD-B.
            STOP RUN RETURNING 0.

运行:

$ cob -x CALCOFF.cbl
$ ./CALCOFF
OFFSET=0000000001,SIZE=10
上一篇 下一篇

猜你喜欢

热点阅读