Mal wieder eine kleine Prozedur für Zwischendurch. Habe ich mal irgendwo im Forum schon gepostet, aber ich wollt sie hier in der Code-Ecke nochmal sehen:
Code: Alles auswählen
Procedure.s isParam(param.s)
Static NewList parameter.s()
Protected n
If Not CountList(parameter())
For n=1 To CountProgramParameters()
If ProgramParameter(n-1)
AddElement(parameter())
parameter()=ProgramParameter(n-1)
EndIf
Next
EndIf
ForEach parameter()
If LCase(param) = LCase(parameter())
ProcedureReturn parameter()
EndIf
Next
ProcedureReturn ""
EndProcedure
; Beispiel 1
Debug isParam("/debug")
Debug isParam("/debUG")
Debug isParam("-trottel")
; Beispiel 2
If isParam("/quit")
End
EndIf
/debug
/DEBUG
/Debug
/DEbug
usw. ...
Wird der Parameter gefunden, ist der Rückgabewert <>"", es wird also der Parameter in seiner Originalschreibweise zurückgegeben. Andernfalls wird ein Leerstring zurückgegeben, weshalb diese Prozedur auch praktisch für If-Abfragen ist (siehe Beispiel 2).
Wie man sieht, werden die Startparameter zwischengespeichert, sodass sie ab dem 2. Suchvorgang nicht mehr erneut ausgelesen werden müssen.