* Return the number of parameters in a list * expC1 Parameter list * expC2 Delimiter (default is the comma) FUNCTION ParmCnt PARAMETER tcParms,tcDelimiter LOCAL lcDelimiter IF TYPE('tcDelimiter')<>'C' lcDelimiter=',' ELSE lcDelimiter=tcDelimiter ENDIF RETURN IIF(EMPTY(tcParms),0,OCCURS(lcDelimiter,tcParms)+1) * Return a parameter value from a list * expC1 Parameter list * expN1 Parameter number * expC2 Delimiter (default is the comma) FUNCTION GetParm PARAMETERS tcParms,tnNo,tcDelimiter LOCAL lcDelimiter,lnBPos,lnEPos IF TYPE('tcDelimiter')<>'C' lcDelimiter=',' ELSE lcDelimiter=tcDelimiter ENDIF lnBPos=AT(lcDelimiter,lcDelimiter+tcParms+lcDelimiter,tnNo) lnEPos=AT(lcDelimiter,lcDelimiter+tcParms+lcDelimiter,tnNo+1) RETURN SUBSTR(tcParms,lnBPos,lnEPos-lnBPos-1)En gros, vous pouvez les utiliser comme suit:
LOCAL lcString,lnOccurence,lnCounter,lcParameter lcString="/etc/france/variable/" lnOccurence=ParmCnt(lcString,"/") FOR lnCounter=1 TO lnOccurence lcParameter=GetParm(lcString,lnCounter) NEXT...à tester