× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.




>Does anyone know if there are any APIs which expose the variables used
>in an RPG program? 
>I want to write a small utility to see what indicators are left
>available in an RPG without having to look at a compile listing.

Mike 
        fraid i'm not sure about any API's to do this but......

heres a (very!) quick pgm I knocked up which will identify indicators
used in OPM pgms only 
(nb the pgm makes an assumption that the 1st valid line is between
100.00 and 999.00 ....)


             PGM        PARM(&PGM)                                        
             DCL        VAR(&PGM)       TYPE(*CHAR) LEN(10)               
             DCL        VAR(&STMTNO)    TYPE(*DEC) LEN(5) VALUE(10000)    
             DCL        VAR(&STMT)      TYPE(*CHAR) LEN(5)                
             DCL        VAR(&INDNO)     TYPE(*DEC) LEN(2) VALUE(1)        
             DCL        VAR(&IND)       TYPE(*CHAR) LEN(2)                
             DCL        VAR(&INDICATOR) TYPE(*CHAR) LEN(5)                

             STRDBG     PGM(&PGM) DSPMODSRC(*NO)                          
             MONMSG     MSGID(CPF0000) EXEC(GOTO CMDLBL(EXIT))            
GET_STMT:                                                                 
             CHGVAR     VAR(&STMT) VALUE(&STMTNO)                         
             ADDBKP     STMT(&STMT)                                       
/* NOT OPM */                                                             
             MONMSG     MSGID(CPF1902) EXEC(GOTO ENDDBG)                  
/* STMT NF */                                                             
             MONMSG     MSGID(CPF1999) EXEC(DO)                           
/* GIVE UP ? */                                                           
             IF         COND(&STMTNO *GT 99800) THEN(GOTO ENDDBG) 
             CHGVAR     VAR(&STMTNO) VALUE(&STMTNO + 100)         
             GOTO       CMDLBL(GET_STMT)                          
             ENDDO                                                
CHECK_IND:                                                        
             CHGVAR     VAR(&IND) VALUE(&INDNO)                   
             CHGVAR     VAR(&INDICATOR) VALUE('*IN' || &IND)      
                                                                  
             ADDBKP     STMT(&STMT) PGMVAR(&INDICATOR)            
             /* INDICATOR NOT USED */                             
             MONMSG     MSGID(CPF1999) EXEC(GOTO NEXT_IND)        
             SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) +            
                          MSGDTA('Indicator ' || &indicator || +  
                          ' used') TOPGMQ(*EXT) MSGTYPE(*STATUS)  
             DLYJOB     DLY(1)                                    
NEXT_IND:                                                         
             IF         COND(&INDNO *LT 99) THEN(DO)              
             CHGVAR     VAR(&INDNO) VALUE(&INDNO + 1)     
             GOTO       CMDLBL(CHECK_IND)                 
             ENDDO                                        
                                                          
ENDDBG:                                                   
             ENDDBG                                       
                                                          
EXIT:                                                     
ENDPGM                                                    
###########################################

This message has been scanned by F-Secure Anti-Virus for Microsoft Exchange.
For more information, connect to http://www.F-Secure.com/

**********************************************************************
The information transmitted is intended only for use by the addressee and may 
contain confidential and/or privileged material. Any review, re-transmission, 
dissemination or other use of it, or the taking of any action in reliance upon 
this information by persons and/or entities other than the intended recipient 
is prohibited. If you received this in error, please inform the sender and/or 
addressee immediately and delete the material.  Thank you

**********************************************************************


As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.