Я пытаюсь следовать учебному пособию по созданию шифра Vigenère.
Однако при вводе любой клавиши я сталкиваюсь с ошибкой, так как она дает мне ошибку, говоря, что она выходит за пределы диапазона.
Может кто-нибудь помочь мне?
Function VigNere(ByVal Txtstring As String, ByVal key As String, ByVal encrypt As Boolean) As String
Dim result As String = ""
Dim temp As String = ""
Dim j As Integer = 0
For i As Integer = 0 To Txtstring.Length
If Char.IsLetter(key(j)) Then
If Txtstring(i) <> " " And Char.IsLetter(Txtstring(i)) Then
If j = key.Length Then
j = 0
End If
temp += key(j)
j += 1
Else
temp += Txtstring(i)
End If
Else
j += 1
If (j >= key.Length) Then
j = 0
End If
i -= 1
End If
Next
For i As Integer = 0 To Txtstring.Length - 1
Dim N As Integer
Dim NewAscii As Integer
If Char.IsLetter(Txtstring(i)) Then
If Char.IsLower(temp(i)) Then
N = Asc(temp(i)) - Asc("a")
ElseIf Char.IsUpper(temp(i)) Then
N = Asc(temp(i)) - Asc("A")
End If
If encrypt Then
NewAscii = N + Asc(Txtstring(i))
Else
NewAscii = 26 - N + Asc(Txtstring(i))
End If
If (NewAscii > Asc("z") And Char.IsLower(Txtstring(i))) Or (NewAscii > Asc("Z") And Char.IsUpper(Txtstring(i))) Then
NewAscii -= 26
End If
Else
NewAscii = Asc(Txtstring(i))
End If
result += Chr(NewAscii)
Next
Return result
End Function