COBOL


An example of the Compress function coded in COBOL is shown in the following figure.

DATA DIVISION.
FILE SECTION.
FD INPUT1                RECORDING MODE F
 LABEL RECORDS OMITTED
 BLOCK 0 RECORDS.
01 IN-RECORD1.
 02 IN-KEY1            PIC X(10).
 02 IN-DATA1           PIC X(128).
FD OUTPUT1               RECORDING MODE V
 LABEL RECORDS OMITTED
 BLOCK 0 RECORDS.
01 OUT-RECORD1.
 02 OUT-LL1            PIC S9(4) USAGE IS COMP.
 02 OUT-DATA           OCCURS 138 TIMES
 DEPENDING ON OUT-LL1.
 03 OUT-BYTE        PIC X.
WORKING-STORAGE SECTION.
01 COMPRESS-FUNCTION     PIC S9(5) VALUE ZERO COMP.
01 EXPAND-FUNCTION       PIC S9(5) VALUE +4   COMP.
01 OPEN-FUNCTION         PIC S9(5) VALUE +12  COMP.
01 CLOSE-FUNCTION        PIC S9(5) VALUE +16  COMP.
01 FILENAME              PIC  X(8) 'XXXXXXXX'.
01 RECNAME               PIC  X(8) 'XXXXXXXX'.
01 ANCHOR1               PIC S9(5) VALUE ZERO COMP.
PROCEDURE DIVISION.
 OPEN INPUT INPUT1.
 OPEN OUTPUT OUTPUT1.
 CALL 'DPICALL' USING     OPEN-FUNCTION
 FILENAME
 IN-RECORD1
 OUT-RECORD1
 ANCHOR1.
READ-RECORD.
 READ INPUT1 AT END GO TO CLOSE-FILES.
 CALL 'DPICALL' USING      COMPRESS-FUNCTION
 RECNAME
 IN-RECORD1
 OUT-RECORD1
 ANCHOR1.
WRITE OUT-RECORD1.
GO TO READ-RECORD.
CLOSE-FILES.
 CLOSE 'DPICALL' USING    CLOSE-FUNCTION
 FILENAME
 IN-RECORD1
 OUT-RECORD1
 ANCHOR1.

An example of the Expand function coded in COBOL is shown in the following figure.

DATA DIVISION.
FILE SECTION.
FD OUTPUT1               RECORDING MODE F
 LABEL RECORDS OMITTED
 BLOCK 0 RECORDS.
01 OUT-RECORD1.
 02 OUT-KEY1           PIC X(10).
 02 OUT-DATA1          PIC X(128).
FD INPUT1                RECORDING MODE V
 RECORD CONTAINS 10 TO 140 CHARS
 LABEL RECORDS OMITTED
 BLOCK 0 RECORDS.
01 IN-RECORD1.
 02 IN-LL1             PIC S9(4) USAGE IS COMP.
 02 IN-DATA            OCCURS 138 TIMES
 DEPENDING ON IN-LL1.
 03 IN-BYTE.        PIC X.
WORKING-STORAGE SECTION.
01 COMPRESS-FUNCTION     PIC S9(5) VALUE ZERO COMP.
01 EXPAND-FUNCTION       PIC S9(5) VALUE +4   COMP.
01 OPEN-FUNCTION         PIC S9(5) VALUE +12  COMP.
01 CLOSE-FUNCTION        PIC S9(5) VALUE +16  COMP.
01 FILENAME              PIC  X(8) 'XXXXXXXX'.
01 RECNAME               PIC  X(8) 'XXXXXXXX'.
01 ANCHOR1               PIC S9(5) VALUE ZERO COMP.
PROCEDURE DIVISION.
 OPEN INPUT INPUT1.
 OPEN OUTPUT OUTPUT1.
 CALL 'DPICALL' USING     OPEN-FUNCTION
 FILENAME
 IN-RECORD1
 OUT-RECORD1
 ANCHOR1.
READ-RECORD.
 READ INPUT1 AT END GO TO CLOSE-FILES.
 CALL 'DPICALL' USING      EXPAND-FUNCTION
 RECNAME
 IN-RECORD1
 OUT-RECORD1
 ANCHOR1.
 WRITE OUT-RECORD1.
 GO TO READ-RECORD.
 CLOSE-FILES.
 CLOSE 'DPICALL' USING    CLOSE-FUNCTION
 FILENAME
 IN-RECORD1
 OUT-RECORD1
 ANCHOR1.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*