Code archives/Algorithms/GetParameter

This code has been declared by its author to be Public Domain code.

Download source code

GetParameter by Diego2009
Interpretes the commandline similar to C and returns each parameter. Single and double quotes hold a string together. \0 \r \n \t \' and \" are also supportet.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Interpretiert die Befehlszeile ähnlich wie in C und gibt nach der Reihe alle Parameter zurück. Einfache und doppelte Anführungszeichen bewirken, dass der String nicht getrennt wird. \0 \r \n \t \' und \" werden unterstützt.
Global GetParameterCommandLine$ = CommandLine()

; Demo (see how it works)
GetParameterCommandLine$ = "'First Parameter' Newline:\r\n " + Chr(34) + "Hello World!" + Chr(34) + " 'Some Chars: \0\\\'\" + Chr(34) + "'"
Print GetParameterCommandLine$
Print
Parameter$ = GetParameter()
While Parameter$ <> ""
	Print Parameter$
	Parameter$ = GetParameter()
	Wend
Print 
Print "Press any key to end"
WaitKey

Function GetParameter$()
GetParameterCommandLine$ = Trim(GetParameterCommandLine$)
For I% = 1 To Len(GetParameterCommandLine$)
	Char$ = Mid(GetParameterCommandLine$, I%, 1)
	If Char$ = "\" Then
		I% = I% + 1
		Char$ = Mid(GetParameterCommandLine$, I%, 1)
		Select Char$
			Case "0"
				Char$ = Chr(0)
			Case "t"
				Char$ = Chr(9)
			Case "n"
				Char$ = Chr(10)
			Case "r"
				Char$ = Chr(13)
			End Select
		Else
		GPDel% = 1
		If GPMode% = 0 And Char$ = Chr(34) Then
			GPMode% = 1
			ElseIf GPMode% = 1 And Char$ = Chr(34) Then
			GPMode% = 0
			ElseIf GPMode% = 0 And Char$ = "'" Then
			GPMode% = 2
			ElseIf GPMode% = 2 And Char$ = "'" Then
			GPMode% = 0
			ElseIf GPMode% = 0 And Char$ = " " Then
			Exit
			Else GPDel% = 0
			EndIf
		If GPDel% Then Char$ = ""
		EndIf
	Parameter$ = Parameter$ + Char$
	Next
GetParameterCommandLine$ = Mid(GetParameterCommandLine$, I%)
Return Parameter$
End Function

Comments

None.

Code Archives Forum