Member 14760588 Ответов: 1

Попытка найти ascii значение последней буквы


Do
    password = InputBox("Enter a password")

    password1 = password.Substring(0, 1)
    password2 = Asc(password1)


    password4 = password.Substring(password.Length, 1)
    password3 = Asc(password4)

    If password2 >= 65 And password2 <= 90 Then
        false1 = True
    End If

    If password3 >= 35 And password3 <= 37 Then
        false2 = True
    End If

Loop Until false1 = True And false2 = True


Что я уже пробовал:

Кажется, он перегружен? пробовал установить passlength в переменную, но не работает

0x01AA

Попробуй password4 = password.Substring(password.Length - 1, 1) и еще лучше проверить, был ли введен пароль.

CHill60

Это стоит опубликовать в качестве решения

0x01AA

Но я потеряюсь, если появятся еще вопросы (я думаю, что это visual basic?). Лучше тебе ответить на этот вопрос.

phil.o

Вы действительно должны опубликовать его как решение, так как оно совершенно верно.

0x01AA

Спасибо вам обоим :)

1 Ответов

Рейтинг:
7

0x01AA

Строки обычно основаны на нуле, это означает, что последний символ строки вы найдете в позиции "длина - 1", а не то, как вы реализовали его с позицией "длина".

Поэтому измените свой код на

password4 = password.Substring(password.Length - 1, 1)
вместо
password4 = password.Substring(password.Length , 1)

Наконец, я предлагаю также перед оценкой всех ваших правил проверить, действительно ли строка пароля содержит хотя бы один символ с чем-то вроде If password.Length > 0
Надеюсь, это поможет.


Maciej Los

5ed!

0x01AA

Еще раз спасибо Мацей

CHill60

Также 5'd !

0x01AA

Большое спасибо! Странно, я получаю сообщения от ЦП иногда очень поздно :(