isParam() »»» Einfach prüfen, ob Parameter gesetzt ist
Verfasst: 13.10.2007 22:54
Hallo!
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:
Die Prozedur sucht unabhängig von Groß- und Kleinschreibung, denn der Benutzer kann ja den Parameter beliebig schreiben:
/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.
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.