帮忙修改一个VB 程序,我头都大了还是没找出问题,THANKS

来源:百度知道 编辑:UC知道 时间:2024/05/31 03:47:18
这是一个维吉尼亚码的解密程序,但是无奈我的水平真是对不起这个好听的名字了,所以各位帮帮我吧
Option Base 1
Dim key(26) As String
key(1) = "a": key(2) = "b": key(3) = " c": key(4) = "d": key(5) = "e": key(6) = "f": key(7) = " g": key(8) = " h"
key(9) = " i": key(10) = " j": key(11) = " k": key(12) = " l": key(13) = " m": key(14) = " n": key(15) = " o": key(16) = " p"
key(17) = " q": key(18) = " r": key(19) = " s": key(20) = "t": key(21) = " u": key(22) = " v": key(23) = " w": key(24) = "x"
key(25) = " y": key(26) = " z"

Private Sub Command1_Click()
Dim i As Integer
Dim A() As Integer
Dim m As String
m = Text2.Text
ReDim A(Len(m)) As Integer
For i = 1 To Len(m)

看看这个符合你的要求不...

Private Sub Command1_Click()
On Error Resume Next
Dim A() As Integer
Dim B() As Integer

Dim key$ '定义数组字符串
key = "abcdefghijklmnopqrstuvwxyz"

Dim i%, sIn$, sOut$ '输入与输出字符串
sIn = LCase(Trim(Text2.Text)) '读取输入文本

if len(sIn)<>len(trim(text1.text)) then
print "两个字符串长度不相等!" : exit sub
endif

ReDim A(Len(sIn)) As Integer
For i = 1 To Len(sIn)
A(i) = InStr(1, key, Mid(sIn, i, 1)) '查找字符
Next

sIn = LCase(Trim(Text1.Text)) '读取输入文本
ReDim B(Len(sIn)) As Integer
For i = 1 To Len(sIn)
B(i) = InStr(1, key, Mid(sIn, i, 1)) + A(i) '查找字符
Do While B(i) > Len(key)
B(i) = B(i) - Len(key) '防止相加越界
Loop
Next

sOut = ""