Return to Mainframe Utilities Page
Module
ISREDIT MACRO (OPT1)
ISPEXEC CONTROL ERRORS RETURN
/**** SET MESSAGE DISPLAY ON/OFF BASED ON THE DEBUG SWITCH ***/
ISPEXEC VGET (DBGSWTCH) PROFILE
IF &DBGSWTCH = &STR(ON) THEN CONTROL MSG LIST CONLIST SYMLIST NOFLUSH
ELSE CONTROL NOMSG NOLIST NOFLUSH NOPROMPT
/***************************************************************************/
/* */
/* 'FINDALL' EDIT MACRO. POSITION CURSOR ON DATA FIELD NAME AND EXECUTE */
/* TO FIND ALL THE OCCURRANCES OF THE DATA FIELD DURING AN EDIT SESSION. */
/* */
/* AUTHOR : JEFF JONES DATE : 10-22-89 SSEC */
/* */
/* REWRITTEN BY DAVID LEIGH FOR EFFICIENCY */
/***************************************************************************/
IF &OPT1 = &STR(HELP) THEN GOTO HELPSEC
/* */
ISREDIT (LN,CL) = CURSOR
IF &CL = 0 THEN +
DO
SET ZEDLMSG = &STR(*** YOUR CURSOR MUST BE IN THE "BODY" OF +
THE DATA, NOT ON THE COMMAND LINE ***)
ISPEXEC SETMSG MSG(UTLZ001)
EXIT
END
ISREDIT FIND PREV ' ' .ZCSR .ZCSR
ISREDIT FIND NEXT P'¬' .ZCSR .ZCSR
ISREDIT (LN1,CL1) = CURSOR
ISREDIT FIND NEXT ' ' .ZCSR .ZCSR
ISREDIT FIND PREV P'¬' .ZCSR .ZCSR
ISREDIT (LN2,CL2) = CURSOR
ISREDIT (DATA) = LINE .ZCSR
IF &CL1 > &CL2 OR +
&SUBSTR(&CL:&CL,&STR(&SYSNSUB(1,&DATA))) = &STR( ) THEN +
DO
SET ZEDLMSG = &STR(*** YOUR CURSOR MUST BE ON A NON-BLANK +
STRING. ***)
ISPEXEC SETMSG MSG(UTLZ001)
ISREDIT CURSOR = &LN &CL
EXIT
END
SET STG = &SUBSTR(&CL1:&CL2,&STR(&SYSNSUB(1,&DATA)))
IF &OPT1 = &STR(KEEP) THEN GOTO FINDALL
ISREDIT EXCLUDE ALL
FINDALL: +
ISREDIT FIND ALL '&STR(&SYSNSUB(1,&STG))'
EXIT
HELPSEC: +
WRITE
WRITE *** HELP FOR EDIT MACRO 'FINDALL' ***
WRITE
WRITE THE FINDALL MACRO IS AN EDIT MACRO WHICH IS EXECUTABLE FROM A
WRITE NORMAL EDIT SESSION. THE MACRO WORKS IN ANY EDIT SESSION WITH
WRITE ANY TYPE OF PROGRAM OR DATASET, AS LONG AS IT CAN BE EDITED.
WRITE
WRITE THE FINDALL MACRO WILL ENABLE A USER TO PLACE THE CURSOR
WRITE ANYWHERE ON A FIELD IN AN EDIT SESSION AND PRESS A PF KEY TO
WRITE FIND ALL OCCURRENCES OF THE FIELD IN THE DATASET OR MEMBER BEING
WRITE EDITED. IT DOESN'T MATTER WHERE ON THE FIELD THE CURSOR IS
WRITE PLACED. THE MACRO WILL ISOLATE THE SPACE DELIMITED STRING THE
WRITE CURSOR IS ON.
WRITE
WRITE FOR EXAMPLE: THE CURSOR MAY BE PLACED ON THE "L" IN THE FIELD
WRITE "L-YEAR", OR ON THE 'E', OR 'R'. IT COULD BE PLACED ANYWHERE ON
WRITE THE "C-80" FIELD. ONCE THE PF KEY IS PRESSED, THE CURSOR WILL
WRITE BE POSITIONED ON THE FIRST OCCURRENCE OF "L-YEAR" OR "C-80" AND
WRITE ALL LINES NOT CONTAINING THE STRING WILL BE "EXCLUDED".
WRITE
WRITE MOVE L-YEAR TO W-YEAR-2ND.
WRITE IF L-YEAR < C-80
WRITE MOVE C-20 TO W-YEAR-1ST.
WRITE
WRITE IF THE CURSOR IS PLACED ON A SPACE, AN ERROR MESSAGE WILL BE
WRITE DISPLAYED ON THE TOP LINE OF THE SCREEN.
WRITE
WRITE *** END OF HELP *** NO PROCESSING PERFORMED ***
EXIT
Documentation
This utility allows you to place your cursor on any non-blank string in an edit session. The utility will then determine the beginning and ending of the string (as delimited by ' ', '=', ',', or '.'). Once it has the string, it will do a "find all" of the string.

0 Comments