Code archives/Miscellaneous/Command line switches
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
Shows to write a custom command line switch routine | |||||
;Function which examines the command line allowing ;the use of switches to pass parameters into the ;program in a similar way DOS programs ;use parameters ;To test this program ;Select the Program -> Program Command Line menu option ;Type something into the text box such as ;-f filename.txt /u username -p password -d -z Dim p$(256) ;Global variable used to hold all the parameters passed in from the command line ;Define a list of all the valid command line switches Global valid_options$ = "abcdefghijklmnopqrstuvwxyABCDEFGHIJKLMNOPQRSTUVWXYZ" ;Define the type structure used to store the processed switches and parameters Type clopt Field switch$ Field valid_char% Field param$ End Type ;Generic Parameter handler function Function HandleParameters%() ;Get the command line cl$ = CommandLine() If Len(Trim(cl$)) = 0 Then Return -1 End If ;Get all the parameters into an array for easier processing pn = 1 For counter = 1 To Len(cl$) c$ = Mid$(cl$, counter, 1) If c$ = " " Then pn = pn + 1 Else p$(pn) = p$(pn) + c$ End If Next ;Work out the parameters For counter = 1 To pn ;If the switch starts with a - or a / param$ = "" option$ = "" valid = 0 If Left(p$(counter), 1) = "-" Or Left(p$(counter), 1) = "/" Then ;Make sure the swtich character is in the list of valid switches option$ = Mid(p$(counter), 2, 1) If Instr(valid_options$, option$, 1) <> 0 Then ;Check to see whether or not there is a parameter for the selected switch If Left(p$(counter+1), 1) <> "-" And Left(p$(counter+1), 1) <> "/" Then param$ = p$(counter+1) counter = counter + 1 Else param$ = "" End If valid = 1 Else valid = 0 End If ;Add the switch and parameter data to a new entry in the options structure o.clopt = New clopt o\switch$ = option$ o\valid_char% = valid o\param$ = param$ End If Next Return 0 End Function ;--------------------------- ; Example of how to use the function ;Call the function If HandleParameters() = -1 Then Print "No parameters found on the command line" Print "" Else Print "" q_found = 0 ;Loop through each switch found on the command line For o.clopt = Each clopt If o\valid_char% = 0 Then Print o\switch$ + " is an invalid switch" Else Select o\switch$ Case "f" Print "f switch found with a value of " + o\param$ Case "u" Print "u switch found with a value of " + o\param$ Case "p" Print "p swtich found with a value of " + o\param$ password$ = o\param$ Case "P" Print "P swtich found with a value of " + o\param$ Case "q" q_found = 1 Case "d" Print "d swtich found with a value of " + o\param$ End Select End If Next Print "" Print "" If q_found = 0 Then Print "The q switch is required" End If End If |
Comments
None.
Code Archives Forum