VB问题.我想请问一下.我的加密代码哪里错了.

来源:百度知道 编辑:UC知道 时间:2024/06/08 05:18:04
以下是代码
Dim s, i As Integer
Dim a() As String
Private Sub Command1_Click()
s = Len(Text1.Text)
ReDim a(s - 1)
For i = 0 To s - 1
a = Mid(Text1.Text, i + 1, 1)
If Asc(a(i)) - 2 < 65 Then
a(i) = Chr(Asc(a(i) + 24))
Else
a(i) = Chr(Asc(a(i) - 2))
End If
Next
End Sub

a = Mid(Text1.Text, i + 1, 1)

这一句a的值不是一个数组,所以要报类型不匹配!

修改后代码
Dim s, i As Integer
Dim a() As String
Private Sub Command1_Click()
s = Len(Text1.Text)
ReDim a(s - 1)
dim b as string,c as string
For i = 0 To s - 1
b = Mid(Text1.Text, i + 1, 1)
If Asc(b) - 2 < 65 Then
a(i) = Chr(Asc(b) + 24)
Else
a(i) = Chr(Asc(b) - 2)
End If
'Debug.Print a(i)
c = c & a(i)
Next
Text1.Text = c
End Sub
加了一个print 观察a(i)的值

If Asc(a(i)) - 2 < 65 Then
这里a只有一位吧
改成
If Asc(a(0)) - 2 < 65 Then

Dim s As Integer
Dim i As Integer
Dim a() As String
Private Sub Command1_Click()

s = Len(Text1.Text)
ReDim a(s - 1)
For i = 0 To s - 1
a(i) = Mid(Text1.Text, i + 1, 1)
If Asc(a(i)) - 2 < 65 Then
a(i) = CStr(Chr(Asc(a(i)) + 24))
Else
a(i) = CStr(Chr(Asc(a(i)) - 2))
End If
Next
End Su