我正在尝试创建一系列可以获取参数的命令.拿起每个单独的命令我正在使用Select Case这个问题是如果我使用Case Else,我无法感知’参数'(字符串的第二部分).如果我不使用Case Else,那么我无法处理不正确的命令并将它们发送到所需的程序.
例如:
Private Sub AllocateType(ByVal Command As String) Select Case Command Case "Eat" 'Call Eat procedure Case "Use" 'Call Use procedure Case "Quit" Case "Pause" Case "Go" Case Else Errors() 'Error handling procedure End Select End Sub
如果命令是’Brrrrr’,它将调用Errors().然而,如果命令是’Eat Food’,它仍然会调用Errors()并且不将参数传递给Eat程序.
编辑,因为它现在不起作用.
我已经尝试了所建议的内容,但我仍然有完全相同的问题.似乎Command.StartsWith和Command.Contains都不起作用,因为如果我尝试输入’Eat Food’,它仍然不会将其视为一个案例.
例:
Select Case Command Case Command.Contains("Eat") Output("TESTING") If Len(Command) > 4 Then Command = Mid(Command,4,(Len(Command) - 4)) Interaction(Command) Else Output("Eat What?") End If Case "Eat" Output("Eat What?") Case Command.StartsWith("Use") If Len(Command) > 4 Then Command = Mid(Command,(Len(Command) - 4)) Interaction(Command) Else Output("Use What?") End If Case "Use" Output("Use What?") 'Case Else ' Errors() End Select
没错,你可以保留你的Select Case块,但由于你没有检查String的完全相等,你应该根据你的目标检查Command.Contains(“Eat”)或Command.StartsWith(“Eat”).
侮辱;
Private Sub AllocateType(ByVal Command As String) Select Case True Case Command.StartsWith("Eat") 'Call Eat procedure Case Command.StartsWith("Use") 'Call Use procedure Case Command.StartsWith("Quit") Case Command.StartsWith("Pause") Case Command.StartsWith("Go") Case Else Errors() 'Error handling procedure End Select End Sub
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。