H*PARMS DFTACTGRP(*NO) ACTGRP(*NEW) H DEBUG d*===================================================================== d* PROGRAMA....: SCHINSRC d* DESCRIPCION.: Buscar string en miembro fuente. d* AUTOR.......: Diego M. ACEVEDO -Argentina d* FECHA.......: 24/09/2004 d*===================================================================== d* List of members . d*----------------------------------------------------- d Quslmbr pr extpgm('QUSLMBR') d 20a d 8a d 20a d 10a d 1a d mbrerr like(errcod) d*----------------------------------------------------- d* Create user space . d*----------------------------------------------------- d quscrtus pr extpgm('QUSCRTUS') d 20a d 10a d 10i 0 d 1a d 10a d 50a d 10a d spcerr like(errcod) d*----------------------------------------------------- d* Retrieve user space . d*----------------------------------------------------- d qusrtvus pr extpgm('QUSRTVUS') d 20a d 10i 0 d 10i 0 d 100a d rtverr like(errcod) d*---------------------------------------------------------- d* Error code data structure . d*---------------------------------------------------------- d errCod Ds Inz d bytprv 1 4b 0 Inz(256) d bytava 5 8b 0 Inz(0) d errid 9 15a d œœreserv 16 16a d msgdta 17 256a d*----------------------------------------------------- d* File name . d*----------------------------------------------------- d Qualnm Ds d Filenm 10a Overlay(Qualnm) d Libl 10a Overlay(Qualnm:11) d*---------------------------------------------------------- d rcvvar Ds d offset 10i 0 Overlay(rcvvar) d nbrent 10i 0 Overlay(rcvvar:9) d filler 88a Overlay(rcvvar:13) d*---------------------------------------------------------- d MbrL0200 Ds Inz d MbrNam 10a Overlay(MbrL0200) d SrcTyp 10a Overlay(MbrL0200:11) d CrtDat 13a Overlay(MbrL0200:21) d ChgDat 13a Overlay(MbrL0200:34) d Text 50a Overlay(MbrL0200:47) d CCSID 10i 0 Overlay(MbrL0200:97) d*---------------------------------------------------------- d* Campos stand-alone . d*---------------------------------------------------------- d X s 10i 0 Inz d USsize s 10i 0 Inz(32767) d ldsofs s 10i 0 Inz(125) d ldelen s 10i 0 Inz(%size(rcvvar)) d UStext s 50a Inz(*allX'40') d rtvtxt s 50a Inz d User_Space s 20a Inz('TEMP QTEMP ') d MBRfmt s 10a Inz('MBRL0200') d Format s 10a Inz d USexta s 10a Inz(*allX'40') d USauth s 10a Inz('*LIBCRTAUT') d USrplc s 10a Inz('*NO') d Ovrprc s 1a Inz('0') d USinit s 1a Inz(X'00') d*---------------------------------------------------------- d* Parámetros de entrada. . d*---------------------------------------------------------- d Parm1 Ds d NbrPrm1 5i 0 Overlay(Parm1) d Filenam 10a Overlay(Parm1:3) d Library 10a Overlay(Parm1:13) d Member 10a Overlay(Parm1:23) d* d Parm2 Ds d NbrElem 5i 0 Overlay(Parm2) d PrmData 288a Overlay(Parm2:3) d*---------------------------------------------------------- c* Definición de parámetros de entrada. c *Entry Plist c Parm Parm1 c Parm Parm2 c* c*========================================================== c* c* M A I N P R O G R A M c* c*========================================================== c* c Do nbrent X c* c* Recupera Nombre de miembro. c Callp QUSRTVUS(User_Space:offset:ldelen:MbrL0200: c Errcod) c* c If %Scan('RPGLE':SrcTyp) > *Zeros c* c Eval Member = Mbrnam c* c Call 'SCHINSRC2R' c Parm '*NEW' Oper 4 c Parm Parm1 c Parm Parm2 c Parm Text c EndIf c* c Eval offset = offset+ldelen c EndDo c* c* Visualizar miembros encontrados. c Call 'SCHINSRC2R' c Parm '*DSP' Oper c Parm Parm1 c Parm Parm2 c* c SetOn LR c Return c* c*========================================================== c* S U B R U T I N A S c*========================================================== c*---------------------------------------------------------- c* SUBRUTINA: *INZSR c* PROPOSITO: Inicialización c*---------------------------------------------------------- c *InzSr BegSr c* c* Crea User Space. c Callp QUSCRTUS(User_Space:USexta:USsize:USinit: c USauth:UStext:USrplc:errcod) c* c* Lista los miembros fuente. c Eval Filenm = FileNam c Eval Libl = Library c* c Callp QUSLMBR(User_Space:MBRfmt:Qualnm:Member: c Ovrprc:Errcod) c* c* Recupera cantidad de registros encontrados. c Callp QUSRTVUS(User_Space:ldsofs:ldelen:rcvvar: c Errcod) c* c* Posicionamiento en el primer elemento. c Eval offset = offset+1 c* c EndSr