У меня есть этот код, который сдвигает алфавит на определенную величину. Размер алфавита 26. Когда я ввожу сдвиг большего размера (например, 22), я получаю отображение некоторых странных символов. Я думаю, мне нужно модифицировать алфавит ASCII до 26, чтобы он заработал, но я не совсем уверен, какой бит модифицировать.
В основном мне нужно обернуть алфавит (как только он достигает Z, он возвращается к букве A). Нужно ли мне создавать словарь для работы мода (например, A = 0... Z = 26) или я могу придерживаться использования обычная таблица ASCII? Вот код ниже:
Public Function encrypt(ByVal input As String) 'input is a variable within the funcion
Dim n as Integer
Dim i As Integer
n = key.Text Mod 26 'gets what is in the text box of 'key' and sets it as n
' the key is a multiple of 26 so 26 will = 0
'need to remove white spaces
While input.Contains(" ") 'when the input text contains a space
input = input.Replace(" ", "") 'replaces it with no space.
End While
For i = 1 To Len(input) 'find the length of the input
Mid(input, i, 1) = Chr(Asc(Mid(input, i, 1)) + n) 'chr returns the character associated with the specified character code
'
Next
encrypt = input
End Function