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 lists...@listserv.ua.edu with the message: INFO IBM-MAIN