How about an EDIT macro? Is passable tool for scanning syslog via SDSF SE funtion.
/*REXX===============================================================*/
Address ISREDIT
"MACRO (PARM)"
"(SAVE) = USER_STATE"
"(SAVELINE,SAVECOL) = CURSOR"
"(LPTR,CPTR) = CURSOR"
"(RECFM1,RECFM2) = RECFM"
"(LLINE) = LINENUM .ZLAST"
offset = 1
If Pos("A",recfm2) > 0 | Pos("M",recfm2) > 0 Then Do
offset = 2
End
"RESET"
"REC OFF"
"X ALL"
cont_num =
find_direction = "NEXT"
cursor_col = 1
"FIND FIRST" parm
find_rc = rc
Do While (find_rc = 0)
"(LPTR,CPTR) = CURSOR"
nptr = lptr + 1
If nptr > lline Then Do
nptr = lline
cursor_col = cptr + 1
End
"(CURLINE) = LINE" lptr
curline = Substr(curline,offset)
If Left(Strip(curline),1) = "N" Then Do
"FIND 'S' " offset
End
If Left(Strip(curline),1) = "S" Then Do
"FIND 'N' PREV" offset
End
If Left(Strip(curline),1) = "M" Then Do
cont_num = Reverse(Word(Reverse(Strip(curline)),1))
find_direction = "NEXT"
End
If Left(Strip(curline),1) = "D" ,
| Left(Strip(curline),1) = "E" Then Do
cont_num = Substr(curline,43,3)
"CURSOR =" lptr "1"
find_direction = "PREV"
End
Do While Strip(cont_num) <> ""
"FIND '" || cont_num || "' " find_direction
If rc > 0 Then Leave
"(LPTR,CPTR) = CURSOR"
"(CURLINE) = LINE" lptr
curline = Substr(curline,offset)
If Left(Strip(curline),1) = "M" Then Do
find_direction = "NEXT"
End
If Left(Strip(curline),1) = "E" Then Do
cont_num = ""
find_direction = "NEXT"
End
End
"CURSOR =" nptr cursor_col
"FIND" parm
find_rc = rc
End
"FIND FIRST" parm
/* "USER_STATE = (SAVE)" */
Return 0
/*===================================================================*/
Regards
Bruce
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN
