Go to LeighWeb Home Page            

Back To LeighWeb Mainframe Utilities Page

View the documentation associated with this module

ISREDIT MACRO
CONTROL NOFLUSH
/* KEY PKK AT THE TOP OF A COBOL PROGRAM AND THIS CLIST WILL */
/* CALCULATE ALL OF THE PICTURE CLAUSES FOR YOU.  IT WILL    */
/* REPLACE PIC(KK) WITH THE CORRECT VALUE AND IT WILL  */
/* ADD THE PICTURE CLAUSE TO LINES WITH JUST THE VALUE CLAUSE */
/* ON IT. (I.E VALUE 'TEST'. WILL BE PIC X(04) VALUE 'TEST'.   */
SET &CNT = 0
SET &VALU = 'VALUE'
SET &PIC  = 'PIC'
SET &TICK = &NRSTR(')
SET &PICKK = 'PIC X(&&COLLEN.)  VALUE'
SET &CHNGE = '(KK)'
DOOVER: -
ISREDIT FIND &VALU NEXT
IF &LASTCC EQ 4 THEN -
  DO
  IF &CNT = 0 THEN -
    DO
      SET ZEDSMSG = &STR(STRING NOT FOUND)
      ISPEXEC SETMSG MSG(ISRZ001)
      GOTO ENDIT
    END
  ELSE -
    DO
      SET ZEDSMSG = &STR(REPLACED &CNT PIC CLAUSES)
      ISPEXEC SETMSG MSG(ISRZ001)
      GOTO ENDIT
    END
  END
SET &CNT = &CNT + 1
ISREDIT FIND &PIC .ZCSR .ZCSR PREV
IF &LASTCC EQ 0 THEN -
  DO
    ISREDIT FIND "&TICK" .ZCSR .ZCSR NEXT
    ISREDIT (LINE,COLBEG) = CURSOR
    ISREDIT FIND "&TICK" .ZCSR .ZCSR NEXT
    ISREDIT (LINE,COLEND) = CURSOR
    SET &COLLEN = &EVAL(&COLEND-&COLBEG-1)
    ISREDIT FIND "(" .ZCSR .ZCSR PREV
    ISREDIT (LINE,COL) = CURSOR
    ISREDIT CURSOR = &LINE &EVAL(&COL-1)
    ISREDIT CHANGE &CHNGE (&COLLEN.) .ZCSR .ZCSR NEXT
    ISREDIT CURSOR = &EVAL(&LINE+1),1
    GOTO BYPASS
  END
ISREDIT (VLINE,VCOL) = CURSOR
ISREDIT FIND "&TICK" .ZCSR .ZCSR NEXT
ISREDIT (LINE,COLBEG) = CURSOR
ISREDIT FIND "&TICK" .ZCSR .ZCSR NEXT
ISREDIT (LINE,COLEND) = CURSOR
SET &COLLEN = &EVAL(&COLEND-&COLBEG-1)
ISREDIT CURSOR = &VLINE &EVAL(&VCOL-1)
ISREDIT CHANGE &VALU &PICKK NEXT
ISREDIT CURSOR = &VLINE &EVAL(&VCOL+15)
BYPASS: -
GOTO DOOVER
ENDIT: -
ISREDIT SAVE
EXIT