Я создаю программу с функцией шифрования и дешифрования. Проблема в том, что он должен работать только с статической строкой кода. Он должен зацикливаться, когда входной текст является последним. Например, String является «ABCDE ... Z1234567890», когда я вводил 0, а ключ - 2, текст Cipher должен быть B. У меня есть четыре текстовых поля для ключа, ввода, открытого текста и зашифрованного текста. Вот мой код.Как закодировать конкретную строку Caesar Cipher vb10
Public Class Form1
Dim key As Integer
Const Intext As String = "abcdefghijklmnopqrstuvwxyz1234567890"
Private Sub btCipher_Click(sender As Object, e As EventArgs) Handles btCipher.Click
Dim plain, s, r As String
Dim i, j As Long
key = Val(txtKey.Text)
plain = txtInput.Text
For i = 1 To Len(plain)
r = Mid$(plain, i, 1)
j = (InStr(1, Intext, r))
If key > 36 Then
s = s & Mid$(Intext, j + (key - 36), 1)
Else
s = s & Mid$(Intext, j + key, 1)
End If
Next i
txtResult.Text = s
End Sub
Private Sub btDecipher_Click(sender As Object, e As EventArgs) Handles btDecipher.Click
Dim plain, s, r As String
Dim i, j As Long
key = Val(txtKey.Text)
plain = txtResult.Text
For i = 1 To Len(plain)
r = Mid$(plain, i, 1)
j = (InStr(1, Intext, r))
If key > 36 Then
s = s & Mid$(Intext, j + (key - 36), 1)
Else
s = s & Mid$(Intext, j - key, 1)
End If
Next i
txtText.Text = s
End Sub End Class
Моя проблема в том, что она не зацикливается. Может, кто-то может помочь. Спасибо.
Является ли переменная 'key' числом символов, пропущенных в строке' Intext'? – Enigmativity