Im neuen all-free RPG gehts auch. Es macht Sinn bei Variablen größer als 16MB, wo der %scan nicht mehr funktioniert. Beispielsweise bei Files aus dem IFS.
PHP-Code:
 dcl-pr strstr         pointer extproc(*dclcase);
          
##string     pointer value options(*string);
          ##pattern    pointer value options(*string);
 
end-pr;

 
dcl-s   string      varchar(60);             // String
 
dcl-s   pattern     varchar(20);             // Pattern
 
dcl-s   result_p    pointer;                 // Result-Pointer
 
dcl-s   pos         int(10);                 // Position

      
string  'das ist ein toller text';
      
pattern 'toll';

      
result_p strstr(%addr(string:*data):%addr(pattern:*data));

      if 
result_p <> *null;                        // Result-Pointer
         
pos result_p - %addr(string:*data) + 1// Position im String
      
endif; 
Herzliche Grüße

Rainer