>* Add this code inmediately after the (l)parameters command >set safety off >list memory to file c:\memory.txt noconsole > >local laMemory(1), lnPCount, lnLines, lnLine, lcName, lnPar, lcScope, laDef(1), lnDef, lnDefs > >set library to foxtools >lnPar = 0 >lnPCount = Pcount() >lnLines = Alines(laMemory, Filetostr('c:\memory.txt'),1+8,Chr(13)+Chr(10)) >for lnLine = 1 to lnLines > lcMemory = reduce(Chrtran(laMemory[lnLine], Chr(9), ' ')) > lnDefs = Alines(laDef, lcMemory,1+8, ' ') > if lnDefs >= 5 > lcName = 'm.' + Alltrim(laDef[1]) > lcScope = Upper(laDef[2]) > if Inlist(lcScope, 'PRIV', 'LOCAL') and Upper(laDef[lnDefs]) = Program() > lnPar = lnPar + 1 > if lnPar <= lnPCount > ? lcName, Evaluate(lcName) > else > exit > endif > endif > endif >endfor > >With a bit more structure...
* Add this code inmediately after the (l)parameters command set safety off list memory to file c:\memory.txt noconsole local lcMemory, lnLine, lcLines, lcName, lnPar, pnPCount lnPar = 0 lnPCount = Pcount() lnLines = Alines(laMemory, Filetostr('c:\memory.txt'),.T.,Chr(13)+Chr(10)) for lnLine = 1 to lnLines lcMemory = Chrtran(laMemory[lnLine], Chr(9), ' ') *-- replace dependency on Foxtools DO WHILE ' '$lcMemory lcMemory = STRTRAN(lcMemory,' ',' ') ENDDO DO case CASE lnPar > lnPCount EXIT CASE NOT UPPER(RIGHT(lcMemory, LEN(PROGRAM())))==PROGRAM() CASE NOT INLIST( UPPER(GETWORDNUM(lcMemory,2,' ')), "PRIV", "LOCAL") OTHERWISE lcName = 'm.' + GETWORDNUM(lcMemory,1,' ') ? lcName, EVALUATE(lcName) ENDCASE NEXT