Skip to content
Parameters Name
xBase C Batchfile
Branch: master
Clone or download
Martina Jindrová
Martina Jindrová init
Latest commit fbd9528 Aug 8, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src init Aug 7, 2019
test init Aug 7, 2019
.gitattributes 🎪 Added .gitattributes & .gitignore files Aug 7, 2019
.gitignore init Aug 7, 2019
clear.bat init Aug 7, 2019
readme.md init Aug 7, 2019

readme.md

Named Parameters

The Named parameters servers for processing and checking input EXE/APP parameters.

VFP Compatibility

VFP 5, VFP 6, VFP 7, VFP 8, VFP 9, VFP Advanced, VFP Advanced 64 bit

Files

  • scr\pname.h - header file
  • src\pname.PRG - main program

Notice

Parameters's value which contain character SPACE must be enclose '', "" or []

Examples

Example 1

* How to run:
* do test1 with  "--inc:\","--outd:\",""
* do test1 with  "--inc:\","--outd:\","--nogui"

PARAMETERS m.puPar1, m.puPar2, m.puPar3

LOCAL m.loObj, m.lcPath, m.liOK
CLEAR
m.lcPath=SYS(16)
m.lcPath=IIF(RAT("\", m.lcPath)>0, LEFT(m.lcPath, RAT("\", m.lcPath)), m.lcPath)
SET PROCEDURE TO (m.lcPath+"..\src\pname.prg")

* If no problemo :-)
PUBLIC m.plNoGUI, m.pcIn, m.pcOut

m.loObj=CREATEOBJECT("_ParamBuffer")
m.loObj.Add("--nogui", "plNoGUI", "E")
m.loObj.Add("--in", "pcIn", "C")
m.loObj.Add("--out", "pcOut", "C")
m.loObj.Parse(m.puPar1, m.puPar2, m.puPar3)

?"plNoGUI:",m.plNoGUI
?"pcIn:",m.pcIn
?"pcOut:",m.pcOut
RELE m.plNoGUI, m.pcIn, m.pcOut
SET PROCEDURE TO

Example 2

* How to run:
* do test2 with  "--nogui","--XXXd:\"

PARAMETERS m.puPar1, m.puPar2, m.puPar3

LOCAL m.loObj, m.lcPath, m.liOK
CLEAR
m.lcPath=SYS(16)
m.lcPath=IIF(RAT("\", m.lcPath)>0, LEFT(m.lcPath, RAT("\", m.lcPath)), m.lcPath)
SET PROCEDURE TO (m.lcPath+"..\src\pname.prg")
#INCLUDE "..\src\pname.h"

* If any parameter is unknow
* hand conversion paramneter --nogui
*  see method _MyParamBuffer::Convert()

PUBLIC m.plNoGUI, m.pcIn, m.pcOut
m.loObj=CREATEOBJECT("_MyParamBuffer")
m.loObj.Add("--nogui", "plNoGUI")
m.loObj.Add("--in", "pcIn", "C")
m.loObj.Add("--out", "pcOut", "C")

m.liOK=m.loObj.Parse(m.puPar1, m.puPar2, m.puPar3)

IF m.liOK=__PNAME_PARAM_PANIC
   ?"Bad parameters... panic mode"
   FOR m.lii=1 TO m.loObj.iFailed
       ?m.loObj.aFailed(m.lii)
   NEXT
ENDIF

?"plNoGUI:", m.plNoGUI
?"pcIn:", m.pcIn
?"pcOut:", m.pcOut
RELE m.plNoGUI, m.pcIn, m.pcOut

SET PROCEDURE TO

DEFINE CLASS _myParamBuffer AS _ParamBuffer

   PROCEDURE Convert
      *
      * _myParamBuffer::Convert
      * 
      LPARAMETERS m.lcName, m.lcValue, m.lcType
      IF m.lcName=='--nogui'
         RETURN .T.
      ELSE
         RETURN DODEFAULT(m.lcName, m.lcValue, m.lcType)
      ENDIF
   ENDPROC
ENDDEFINE

Example 3

* How to run:
* do test3 with  "--nogui","--oute:\"

PARAMETERS m.puPar1, m.puPar2, m.puPar3

LOCAL m.loObj, m.lcPath, m.liOK
CLEAR
m.lcPath=SYS(16)
m.lcPath=IIF(RAT("\", m.lcPath)>0, LEFT(m.lcPath, RAT("\", m.lcPath)), m.lcPath)
SET PROCEDURE TO (m.lcPath+"..\src\pname.prg")
#INCLUDE "..\src\pname.h"

* If value of any parameter are not allowed
*  see method _MyParamBuffer::CheckValue()
PUBLIC m.plNoGUI, m.pcIn, m.pcOut

m.loObj=CREATEOBJECT("_MyParamBuffer")
m.loObj.Add("--nogui", "plNoGUI")
m.loObj.Add("--in", "pcIn", "C")
m.loObj.Add("--out", "pcOut", "C")

m.liOK=m.loObj.Parse(m.puPar1, m.puPar2, m.puPar3)

IF m.liOK=__PNAME_PARAM_FAILED
   ?"Wrong parameters's value"
   FOR m.lii=1 TO m.loObj.iWrong
       ?m.loObj.aWrong(m.lii, 1), m.loObj.aWrong(m.lii, 2)
   NEXT
ENDIF

?"plNoGUI:", m.plNoGUI
?"pcIn:", m.pcIn
?"pcOut:", m.pcOut
RELE m.plNoGUI, m.pcIn, m.pcOut


SET PROCEDURE TO



DEFINE CLASS _myParamBuffer AS _ParamBuffer


   PROCEDURE Convert
      *
      * _myParamBuffer::Convert
      * 
      LPARAMETERS m.lcName, m.lcValue, m.lcType

      IF m.lcName=='--nogui'
         RETURN .T.
      ELSE
         RETURN DODEFAULT(m.lcName, m.lcValue, m.lcType)
      ENDIF
   ENDPROC


   PROCEDURE CheckValue
      *
      * _myParamBuffer::CheckValue
      * 
      LPARAMETERS m.lcName, m.luValue
      * lcName  - Parameter Name
      * luValue - Base Value

      IF m.lcName=='--out' AND m.luValue<>'d:\'
         RETURN .F.
      ENDIF
      RETURN .T.
   ENDPROC

ENDDEFINE
You can’t perform that action at this time.