Цель состоит в том, чтобы написать код только в VB, который проверит идентификатор пользователя и посмотрит, находится ли он в правильном формате. Первое письмо должно быть капиталом, следующие 3 должны быть строчными, а следующие три должны быть числами. Моя программа выводит «Формат не прав», несмотря ни на что. Даже если я напечатаю правильный формат:Программа не дает желаемого решения
Sub Main()
Dim userID As String
Dim a, b, c, d, e, f, g As Integer
Console.WriteLine("Input User ID")
userID = Console.ReadLine
'Take Hall123 as a example of a correct format
a = Asc(Left(userID, 1))
'First capital letter
b = Asc(Mid(userID, 2, 1))
'First lower case
c = Asc(Mid(userID, 3, 1))
'Second lower case
d = Asc(Mid(userID, 4, 1))
'Third lower case
e = Asc(Mid(userID, 5, 1))
'd contains the first number
f = Asc(Mid(userID, 6, 1))
'e contains the second number
g = Asc(Mid(userID, 7, 1))
'f contains the third number
'just checking
Console.WriteLine(a)
Console.WriteLine(b)
Console.WriteLine(c)
Console.WriteLine(d)
Console.WriteLine(e)
Console.WriteLine(f)
If Len(userID) = 7 Then
If a >= 65 And a <= 90 Then
If b >= 97 And b <= 122 And c >= 97 And c <= 122 And d >= 97 And d <= 122 Then
If e <= 57 And 48 >= e And f <= 57 And 48 >= f And g <= 57 And g >= 48 Then
Console.WriteLine("Format is correct")
Else
Console.WriteLine("Format is not correct")
End If
Else
Console.WriteLine("Format is not correct")
End If
Else
Console.WriteLine("Format is not correct")
End If
Else
Console.WriteLine("Format is not correct")
End If
Console.ReadKey()
End Sub
Я использую функцию функции Mid правильно? Я только изучил это вчера ....
Вы проверили окно отладки, чтобы убедиться, что a, b, c, d, e, f и g являются тем, чем они должны быть? – TMH8885
Я не очень хорош в регулярных выражениях, но это похоже на хороший случай для регулярного выражения. Есть ли причина, по которой вы не используете регулярные выражения? Документация найдена здесь (https://msdn.microsoft.com/en-us/library/hs600312 (v = vs.110) .aspx) –