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