I am not sure if anyone else needs this - but I was able to get this to work 
with a few changes.
Thanks to everyone that helped.

/* REXX */
/* trace IR */
address ISREDIT
"MACRO (sstring)"
/* SAY sstring */
"(mylrecl) = LRECL"
istring = copies('=',mylrecl)
istring1 = copies(' ',mylrecl)
"SCAN OFF"
"FIND " SSTRING " LAST"
do while rc = 0
   do 1
      "LINE_BEFORE .ZCSR = (istring1)"
      end
   do 3
      "LINE_BEFORE .ZCSR = (istring)"
      end
   do 1
      "LINE_BEFORE .ZCSR = (istring1)"
      end
   "SEEK P'=' 1 .ZCSR .ZCSR FIRST"
"SEEK " SSTRING " PREV"
   end
exit



-----Original Message-----
From: IBM Mainframe Discussion List <[email protected]> On Behalf Of 
Schmitt, Michael
Sent: Monday, April 14, 2025 2:39 PM
To: [email protected]
Subject: Re: ISREDIT Macro odd request

 !

CAUTION! EXTERNAL SENDER! STOP, ASSESS, AND VERIFY Do you know this person? 
Were you expecting this email? If not, report it using the Report Phishing 
Button!

That code won't work if the search string contains an ampersand.

Here's my riff on your macro:

/* REXX */
address ISREDIT
"MACRO (sstring)"
"(mylrecl) = LRECL"
istring = copies('=',mylrecl)
"SCAN OFF"
"FIND '&SSTRING' LAST"
do while rc = 0
   do 3
      "LINE_BEFORE .ZCSR = (istring)"
      end
   "SEEK P'=' 1 .ZCSR .ZCSR FIRST"
   "SEEK '&SSTRING' PREV"
   end
exit

-----Original Message-----
From: IBM Mainframe Discussion List <[email protected]> On Behalf Of 
Seymour J Metz
Sent: Monday, April 14, 2025 2:06 PM
To: [email protected]
Subject: Re: ISREDIT Macro odd request

I haven't tried it, but it looks good. It could be tightened up, but probably 
not worth it.

--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
עַם יִשְׂרָאֵל חַי
נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר



________________________________________
From: IBM Mainframe Discussion List on behalf of Grantham, Chip
Sent: Monday, April 14, 2025 2:43 PM
To: [email protected]
Subject: Re: ISREDIT Macro odd request


External Message: Use Caution


You can try this.  No guarantee:

   /* REXX */
   address isredit
   'macro (sstring)'
   '(mylrecl) = LRECL'
   istring = copies('=',mylrecl)
   "find '"||sstring||"' last"
   "(Fcnt) = FIND_COUNTS"
   Do while fcnt > 0
      "(fpos) = CURSOR"
      do i = 1 to 3;
         "LINE_BEFORE" fpos "= (istring)"
      end
      fpos = fpos - 1
      if fpos < 1 Then leave
      "CURSOR = " fpos
      "find '"||sstring||"' PREV"
      "(Fcnt) = FIND_COUNTS"
   End
   exit

-----Original Message-----
From: IBM Mainframe Discussion List <[email protected]> On Behalf Of 
Steely.Mark
Sent: Monday, April 14, 2025 12:54 PM
To: [email protected]
Subject: ISREDIT Macro odd request

I'm looking for an ISREDIT macro that will search for a specific string within 
a member.
Whenever the string is found, the macro should insert three lines containing 
only a series of =============== immediately before the matched line.
The macro should continue searching through the entire member, repeating this 
action for every occurrence of the string.

If anyone has a similar EDIT macro that they could share or modify to meet this 
need, I'd greatly appreciate it.

Thank You


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
[email protected] with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
[email protected] with the message: INFO IBM-MAIN




----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
[email protected] with the message: INFO IBM-MAIN



----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
[email protected] with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to