Blog Archive

RPGLE %check() %scan() %checkr() BIFs

List of RPGLE String BIFs

%CHECK()


compare-value : data-to-search { : start-position }
First position in the searched-data that contains a character not in the list of the characters in the compare value.

%CHECKR()

compare-value : data-to-search { : start-position }
Last position in the searched-data that contains a character not in the list of the characters in the compare value. (Search begins with the right-most character and proceeds to the left. Basically does the same thing as %CHECK() but goes from right to left in the string data.

%SCAN()


search argument : string to be searched {:start position}
First position of search argument in string or zero, if not found.

There are two very big differences between these two BIFs.
  • The first is that with %CHECK, the compare string is treated as a list of individual characters, whereas %SCAN operates on it as a single string. 
  • The second is that %SCAN tries to locate an occurrence of the characters in the compare string, whereas %CHECK tries to identify any characters that are not present in the compare string.
Remember: The operations are case-sensitive.

Example for %SCAN()

D $source         S            100A                   
D $pos            S              5U 0                 
                                                      
 /FREE                                                
                                                      
   $source = 'RPGLE is a Popular Programming ' +      
             'language of the IBM Power i platform';  
                                                      
   $pos = %scan ('IBM' : $source);                    
   dsply $pos; //DSPLY     48                         
                                                      
   $pos = %scan ('IBM' : $source :15);                
   dsply $pos; //DSPLY     48                         
                                                      
   $pos = %scan ('Po' : $source);                     
   dsply $pos; //DSPLY     12                         
                                                      
   $pos = %scan ('Po' : $source : 20);                
   dsply $pos; //DSPLY     52                         
                                                      
    *inlr = *on;                                      
 /END-FREE                                            

Example for %CHECK() and %CHECKR()

D $source         S             20A                     
D $pos            S              5U 0                   
                                                        
 /FREE                                                  
                                                        
   $source = 'AABC1ABD2AB3A';                           
                                                        
   $pos = %check ('ABCD' : %trim($source));             
   dsply $pos; //DSPLY      5                           
                                                        
   $pos = %check ('ABCD' : %trim($source) :6);          
   dsply $pos; //DSPLY      9                           
                                                        
   $pos = %checkr ('ABCD' : %trim($source));            
   dsply $pos; //DSPLY     12                           
                                                        
   $pos = %checkr ('ABCD' : %trim($source) : 11);       
   dsply $pos; //DSPLY      9                           
                                                        
    *inlr = *on;                                        
 /END-FREE           

2 comments :

  1. Thanks a lot to the author
    {MYSPCRE002 RPGLE
    MYSPCRE003 RPGLE}

    ReplyDelete
  2. Hey are using WordPress for your blog platform? I’m new to the blog world but I’m
    trying to get started and create my own. Do you require
    any coding knowledge to make your own blog?
    Any help would be greatly appreciated!... My Web : Master Seo Blog Coretan Review Ernawati Blog Coretan Review Ernawati

    ReplyDelete