83 lines
6.5 KiB
COBOL
83 lines
6.5 KiB
COBOL
00001 ***** 07/27/98
|
|
00002 * DTSIL143
|
|
00003 * MACIL143 BUILD A RECORD WITH VARIABLE LENGTH FIELDS LV001
|
|
00004 * MODULE LINKAGE. DTSIL143
|
|
00005 * DTSIL143
|
|
00006 * DTSIL143
|
|
00007 * IN BUILDING A RECORD, CALL THIS MODULE ONCE FOR EACH FIELD DTSIL143
|
|
00008 * TO BE INCLUDED IN THE RECORD. EACH TIME THIS MODULE IS DTSIL143
|
|
00009 * CALLED THE FOLLOWING FIELDS NEED TO BE SET BY THE CALLING DTSIL143
|
|
00010 * MODULE: DTSIL143
|
|
00011 * L143-FIELD-DELIM DTSIL143
|
|
00012 * L143-STRING-DELIM DTSIL143
|
|
00013 * L143-EDIT-FIELD-IND DTSIL143
|
|
00014 * L143-EMBED DTSIL143
|
|
00015 * L143-FIELD-SIZE DTSIL143
|
|
00016 * L143-FIELD DTSIL143
|
|
00017 * DTSIL143
|
|
00018 * WHEN FIRST CALLING THIS MODULE FOR A GIVEN RECORD, SET DTSIL143
|
|
00019 * L143-REC-SIZE TO ONE LESS THAN THE POSITION IN THE RECORD DTSIL143
|
|
00020 * AT WHICH YOU WANT MACBU143 TO POSITION THE FIRST FIELD IT DTSIL143
|
|
00021 * IS PASSED (E.G. SET L143-REC-SIZE TO +0 TO POSITION THE DTSIL143
|
|
00022 * FIRST FIELD IN THE FIRST BYTE). FROM THERE ON, MACBU143 DTSIL143
|
|
00023 * ALWAYS SETS L143-REC-SIZE TO THE POSITION OF THE LAST BYTE DTSIL143
|
|
00024 * IT HAS MOVED INTO THE RECORD. DTSIL143
|
|
00025 * DTSIL143
|
|
00026 * L143-TRIM-OUTSIDE-SPACES WILL RESULT IN ALL SPACES AT THE DTSIL143
|
|
00027 * START AND END OF THE FIELD PASSED TO BE DROPPED. DTSIL143
|
|
00028 * DTSIL143
|
|
00029 * L143-TRIM-LEADING-ZEROES WILL RESULT IN ALL LEADING ZEROES DTSIL143
|
|
00030 * UP TO BUT NOT INCLUDING THE DIGIT TO THE LEFT OF THE DECIMAL DTSIL143
|
|
00031 * POINT (OR, IF THERE IS NO DECIMAL POINT, THE LOW ORDER DTSIL143
|
|
00032 * DIGIT) BEING DROPPED. DTSIL143
|
|
00033 * DTSIL143
|
|
00034 * IF NOT L143-EMBED-NO-REPLACE DTSIL143
|
|
00035 * - IF NOT L143-STRING-DELIM-NO THEN ANY EMBEDDED DTSIL143
|
|
00036 * OCCURANCES OF THE STRING DELIMITER ARE REPLACED BY DTSIL143
|
|
00037 * L143-EMBED. DTSIL143
|
|
00038 * - IF L143-STRING-DELIM-NO BUT NOT L143-FIELD-DELIM-NO THEN DTSIL143
|
|
00039 * ANY EMBEDDED OCCURANCES OF THE FIELD DELIMITER ARE DTSIL143
|
|
00040 * REPLACED BY L143-EMBED. DTSIL143
|
|
00041 * DTSIL143
|
|
00042 * DTSIL143
|
|
00043 ***** DTSIL143
|
|
00044 SKIP1 DTSIL143
|
|
00045 10 L143-LENGTH PIC S9(04) COMP. DTSIL143
|
|
00046 SKIP1 DTSIL143
|
|
00047 10 L143-FIELD-DELIM PIC X(01). DTSIL143
|
|
00048 88 L143-FIELD-DELIM-NO VALUE 'N'. DTSIL143
|
|
00049 88 L143-FIELD-DELIM-COMMA VALUE ','. DTSIL143
|
|
00050 88 L143-FIELD-DELIM-SEMI VALUE ';'. DTSIL143
|
|
00051 88 L143-FIELD-DELIM-SPACE VALUE ' '. DTSIL143
|
|
00052 10 L143-STRING-DELIM PIC X(01). DTSIL143
|
|
00053 88 L143-STRING-DELIM-NO VALUE 'N'. DTSIL143
|
|
00054 88 L143-STRING-DELIM-DOUB-QUOTE VALUE '"'. DTSIL143
|
|
00055 10 L143-EDIT-FIELD-IND PIC X(01). DTSIL143
|
|
00056 88 L143-EDIT-FIELD-NO VALUE 'N'. DTSIL143
|
|
00057 88 L143-TRIM-OUTSIDE-SPACES VALUE ' '. DTSIL143
|
|
00058 88 L143-TRIM-LEADING-ZEROES VALUE '0'. DTSIL143
|
|
00059 10 L143-EMBED PIC X(01). DTSIL143
|
|
00060 88 L143-EMBED-NO-REPLACE VALUE 'N'. DTSIL143
|
|
00061 88 L143-EMBED-REPLACE-SPACE VALUE ' '. DTSIL143
|
|
00062 88 L143-EMBED-REPLACE-SING-QUOTE VALUE ''''. DTSIL143
|
|
00063 10 FILLER PIC X(05). DTSIL143
|
|
00064 SKIP1 DTSIL143
|
|
00065 10 L143-FIELD-SIZE PIC S9(04) COMP. DTSIL143
|
|
00066 10 L143-FIELD. DTSIL143
|
|
00067 15 L143-FIELD-CHAR PIC X(01) DTSIL143
|
|
00068 OCCURS 200 DTSIL143
|
|
00069 INDEXED BY L143-FIELD-IDX. DTSIL143
|
|
00070 SKIP1 DTSIL143
|
|
00071 10 L143-RESULT-IND PIC X(01). DTSIL143
|
|
00072 88 L143-OK VALUE '0'. DTSIL143
|
|
00073 88 L143-ERROR VALUE '1'. DTSIL143
|
|
00074 SKIP1 DTSIL143
|
|
00075 10 L143-MAX-REC-LENGTH PIC S9(04) COMP DTSIL143
|
|
00076 VALUE +4099. DTSIL143
|
|
00077 10 L143-REC-SIZE PIC S9(04) COMP. DTSIL143
|
|
00078 10 L143-REC. DTSIL143
|
|
00079 15 L143-REC-CHAR PIC X(01) DTSIL143
|
|
00080 OCCURS 0 TO 4099 DTSIL143
|
|
00081 DEPENDING ON L143-REC-SIZE DTSIL143
|
|
00082 INDEXED BY L143-REC-IDX. DTSIL143
|