Seite 1 von 1

isParam() »»» Einfach prüfen, ob Parameter gesetzt ist

Verfasst: 13.10.2007 22:54
von AND51
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:

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
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.

Verfasst: 16.10.2007 11:19
von mpz
Klein, fein, nett kann ich brauchen...

Gruß Michael :mrgreen:

Verfasst: 16.10.2007 15:06
von AND51
Hey vielen Dank für das Feedback! Freut mich! :allright: