*//----------------------------------------------------------------------------
*//............................................................................
*//......Fecha: 02-06-2017.............................................
*//......Autor: OMAR ROJAS..........
*//......Localidad: Encarnación-Paraguay...................................
*//......Funcion: Programa principal.....................................
*//......Compatib.: Ha sido desarrollado y probado con VFP8.0 p/WINDOWS....
*//............................................................................
*//----------------------------------------------------------------------------
LPARAMETERS _lcpar &&myapp.exe "--par1 1 --par2 2 --par3 3"
*//
*// ESTA SIMPLE CLASE PROCESA LOS PARAMETROS PASADOS AL PROGRAMA PRINCIPAL
*// Y LOS GESTIONA DE FORMA SIMPLE
*//
*// EJEMPLO DE USO
*// CREAMOS EL OBJETO Y PASAMOS LINEA DE PARAMETROS
_pobj=CREATEOBJECT( 'OPARAM', _lcpar )
CLEAR
? "SE CAPTURO "+TRANSFORM(_pobj.LEN,'99')+" PARAMETROS",CHR(13)
? "COMPROBANDO SI EXISTE CLAVE par2, EXISTE?",_pobj.ISKEY('par2'),CHR(13)
? "OBTENIENDO VALOR DE CLAVE par2, valor:",_pobj.GETVALUE('par2'),CHR(13)
? "STRING DE PARAMETROS CAPTURADOS",_pobj.PAR,CHR(13)
*//
*// CLASE QUE PROCESA LOS PARAMETROS PASADOS AL PROGRAMA PRINCIPAL
*//
DEFINE CLASS OPARAM AS CUSTOM
DIMENSION MAT[1,1] &&MATRIZ KEY->VALUE EJ: par1->1
LEN =0 &&cantidad de parametros
PAR ='' &&string de parametros "--par1 1 --par2 2 --par3 3"
*////////////////
PROCEDURE INIT
*////////////////
*//
*// TODO: extrae claves del parametro, OBJ EMPTY
*//
LPARAMETERS _str
LOCAL _lpar,_lin,_txt,_tag,_val,_lin
IF EMPTY(_str)
RETURN
ENDIF
THIS.PAR=_str
_lpar =ALINES( _mpar, STRTRAN( _str, '--', CHR(13) ) )
_lin =0
FOR _gir=2 TO _lpar
_txt=ALLTRIM(_mpar[_gir])
_tag=ALLTRIM( SUBSTR( _txt, 1, AT(' ',_txt) ) )
_val=ALLTRIM( SUBSTR( _txt, AT(' ',_txt)+1 ) )
_lin=_lin+1
DIMENSION THIS.MAT[_lin,2]
THIS.MAT[_lin,1]=_tag
THIS.MAT[_lin,2]=_val
ENDFOR
THIS.LEN=_lin
RETURN
ENDPROC
*///////////////////////////
FUNCTION ISKEY(_key)
*/////////////////////////////
*//
*// TODO: AVERIGUA SI UNA CLAVE EXISTE
*//
RETURN IIF( ASCAN(THIS.MAT,_key,1,0,0,1)>0, .T., .F. )
ENDFUNC
*///////////////////////////
FUNCTION GETVALUE(_key)
*///////////////////////////
*//
*// TODO: DEVUELVE EL VALOR DE UNA CLAVE COMO STRING
*//
IF !THIS.ISKEY(_key)
RETURN ''
ENDIF
RETURN THIS.MAT[ ASUBSCRIPT(THIS.MAT,ASCAN(THIS.MAT,_key,1,0,0,1),1), 2 ]
ENDFUNC
ENDDEFINE