51 lines
1.4 KiB
Plaintext
51 lines
1.4 KiB
Plaintext
Public Sub Main()
|
|
|
|
Dim asMenu As String[] = ["fee fie", "huff And puff", "mirror mirror", "tick tock"]
|
|
Dim sValuePrompt As String = "Please select one of the above numbers> "
|
|
Dim sChoice As String
|
|
Dim sFeedbackFormat As String = "You have chosen '&1'\r\n"
|
|
|
|
sChoice = Menu(asMenu, sValuePrompt)
|
|
If sChoice = "" Then
|
|
Print "menu returned an empty string"
|
|
Else
|
|
Print Subst(sFeedbackFormat, sChoice)
|
|
Endif
|
|
|
|
End
|
|
|
|
Private Function Menu(asChoices As String[], sPrompt As String) As String
|
|
|
|
Dim sReturnValue As String = ""
|
|
Dim sMenuLineFormat As String = "&1) &2"
|
|
Dim sAnswer As String
|
|
Dim iAnswer As Integer
|
|
Dim iIndex As Integer = 0
|
|
Dim sMenuItem As String
|
|
|
|
If Not IsNull(asChoices) Then
|
|
If asChoices.Count > 0 Then
|
|
Do
|
|
For iIndex = 0 To asChoices.Max
|
|
sMenuItem = asChoices[iIndex]
|
|
Print Subst(sMenuLineFormat, iIndex, sMenuItem)
|
|
Next
|
|
|
|
Print sPrompt
|
|
Input sAnswer
|
|
|
|
If IsNumber(sAnswer) Then
|
|
iAnswer = sAnswer
|
|
If (0 <= iAnswer) And (iAnswer <= asChoices.Max) Then
|
|
sReturnValue = asChoices[iAnswer]
|
|
Break
|
|
Endif
|
|
Endif
|
|
Loop
|
|
Endif
|
|
Endif
|
|
|
|
Return sReturnValue
|
|
|
|
End
|