Squelette pour Cmdline & Aide
Publié : mar. 17/févr./2015 12:49
Pour partir sur de "bonnes" bases pour mes futurs dev et ne pas réécrire à chaque fois.
Qu'est ce que vous me conseillez (ou utilisez), pour analyser les paramètres, switchs de ligne de commandes.
De même pour faire une aide, au plus simple.
Pour l'instant, Je suis partie sur cela (Pas top pour l'aide avec MessageRequester ici avec la police non proportionnelle et la taille de la fenêtre):
Qu'est ce que vous me conseillez (ou utilisez), pour analyser les paramètres, switchs de ligne de commandes.
De même pour faire une aide, au plus simple.
Pour l'instant, Je suis partie sur cela (Pas top pour l'aide avec MessageRequester ici avec la police non proportionnelle et la taille de la fenêtre):
Code : Tout sélectionner
Declare.s GetCMDParam(Param.s)
Declare.c GetCMDSwitch(Switch.s)
; exemple exe avec cmdline: -path "C:\Program Files" -T Texte -switch -R -?
; ou: /path "C:\Program Files" /T Texte /switch /R /?
; Retours
; C:\Program Files
; Texte
; 1
; 1
; 0
Debug GetCMDParam("Path")
Debug GetCMDParam("T")
Debug GetCMDSwitch("switch")
Debug GetCMDSwitch("R")
Debug GetCMDSwitch("SwitchManquant")
Aide = GetCMDSwitch("?")
ExeName.s = GetFilePart(ProgramFilename())
help.s = "Usage:"+#CRLF$
help.s + ExeName.s + " /Path /T [/switch] [/R] [/SwitchManquant]"+#CRLF$+#CRLF$
help.s + " /Path Chemin d'accès"+#CRLF$
help.s + " /T Texte"+#CRLF$
help.s + " /switch switch"+#CRLF$
help.s + " /R R switch"+#CRLF$
help.s + " /SwitchManquant SwitchManquant"+#CRLF$+#CRLF$
help.s + "Exemple:"+#CRLF$
help.s + ExeName.s + " /path " + Chr(34) + "C:\Program Files" + Chr(34) +" /T Texte /switch /R"+#CRLF$
If Aide= #True
MessageRequester(ExeName.s + " Usage", help.s , #PB_MessageRequester_Ok|#MB_ICONINFORMATION)
EndIf
;----------------------------------------------------------------------------------
; Parametre
;----------------------------------------------------------------------------------
Procedure.s GetCMDParam(Param.s)
Param = LCase(Param)
For i = 0 To CountProgramParameters() -1
If LCase(ProgramParameter(i)) = "-" + Param Or LCase(ProgramParameter(i)) = "/" + Param
ProcedureReturn ProgramParameter(i+1)
EndIf
Next
ProcedureReturn ""
EndProcedure
;----------------------------------------------------------------------------------
; Switch
;----------------------------------------------------------------------------------
Procedure.c GetCMDSwitch(Switch.s)
Switch = LCase(Switch)
For i = 0 To CountProgramParameters() -1
If LCase(ProgramParameter(i)) = "-" + Switch Or LCase(ProgramParameter(i)) = "/" + Switch
ProcedureReturn #True
EndIf
Next
ProcedureReturn #False
EndProcedure