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

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

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

Beitrag 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.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
mpz
Beiträge: 505
Registriert: 14.06.2005 15:53
Computerausstattung: Win 11 Pro, 48 GB Ram, Intel I7 CPU und RX4070 Grafikkarte, PB (4/5) 6.12LT
Wohnort: Berlin, Tempelhof

Beitrag von mpz »

Klein, fein, nett kann ich brauchen...

Gruß Michael :mrgreen:
Working on :lol: - LibSGD - MP3D Engine - 8)
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Hey vielen Dank für das Feedback! Freut mich! :allright:
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Antworten