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