/* Invoke superc searchall for a character string wile in EDIT or in ISPF 3.4. This exec will scan an entire PDS while in ISPF EDIT for a single character string. It can also be invoked in ISPF 3.4. For example, in ISPF EDIT W NO ARGUMENT: SRCHFOR (This will prompt you for the character to be searched). In ISPF EDIT WITH ARGUMENT: SRCHFOR JOB (This will search the PDS for the char string "job"). In ISPF 3.4 W NO ARGUMENT: SRCHFOR (This will prompt you for the character to be searched). In ISPF 3.4 WITH ARGUMENT: SRCHFOR / JOB (This will search the PDS for the char string "job"). The string must be input after the slash. This EXEC uses a skeleton called SRCHFOR which must be concat'd in the ISPSLIB DD of your TSO session./* Address ISPEXEc "control errors return" X=MSG("OFF") SRCHSTR = " " "ISREDIT MACRO (SRCHSTR)" IF RC = 0 THEN ADDRESS ISPEXEC "ISREDIT (DSN) = DATASET" ELSE DO ARG DSN SRCHSTR L1 = LENGTH(DSN) DSN = SUBSTR(DSN,2,L1-2) END IF SRCHSTR = " " THEN DO SAY "ENTER STRING AND I WILL INSERT THE QUOTES FOR YOU" PULL SRCHSTR END L2 = LENGTH(SRCHSTR) + 1 SRCHSTR = INSERT("'",SRCHSTR) SRCHSTR = INSERT("'",SRCHSTR,L2) SAY "SEARCH STRING "SRCHSTR "WILL BE USED" ADDRESS TSO "FREE F(NEWDD,SYSIN,OUTDD)" ADDRESS ISPEXEC "FTOPEN TEMP" ADDRESS ISPEXEC "FTINCL SRCHFOR" ADDRESS ISPEXEC "FTCLOSE" ADDRESS ISPEXEC "VGET (ZTEMPF)" ADDRESS TSO "ALLOC F(SYSIN) DA('"ZTEMPF"') SHR" ADDRESS TSO "ALLOC F(NEWDD) DSNAME('"DSN"') SHR" ADDRESS TSO "ALLOC F(OUTDD) DSNAME(*)" ADDRESS ISPEXEC "SELECT PGM(ISRSUPC) PARM('L SRCHCMP CKPACKL ANYC')" SELECT WHEN RC = 0 THEN DO SAY "THERE WERE NO HITS FOR ANY OF THE SEARCH STRINGS YOU SELECTED" END WHEN RC = 1 THEN RETURN /* RC 1 INDICATES RECORD FOUND */ OTHERWISE SAY " ERROR INVOKING SUPERC SRCHFOR...RETURN CODE " RC END EXIT SRCHFOR &SRCHSTR