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

Reply via email to