苦苦苦,这个过程如何写成函数啊?求救!
Private Sub Command1_Click()
'=======对文本进行编码处理
Dim i,str1,str2,str3
str1="需要处理的文本"
Dim b() As Byte
b = StrConv(str1, vbFromUnicode)
For i = 0 To UBound(b)
b(i) = b(i) Xor 2
Next
str2 = b
msgbox "结果1:" & str2 '返回的是经过编码后的乱码
'=======对文本进行反编码处理
For i = 0 To UBound(b)
b(i) = b(i) Xor 2
Next
str3=StrConv(b, vbUnicode)
msgbox "结果1:" & str3 '返回的是:"需要处理的文本"
End Sub
现在我想要做成二个函数(即编码函数和反编码函数)可以作如下调用:
Encode("需要处理的文本") '得到编码后的字符串
UNEncode(经过编码后的乱码) '得到正常的字符串
请问这二个函数我该怎么写啊,搞了好久,都没搞好,不知道如何写,大家帮我看看吧 --------------------编程问答-------------------- 楼主你一点VB基础都没有的吗?
function Encode( str1 as string) as string
Dim i,str2,str3
Dim b() As Byte
b = StrConv(str1, vbFromUnicode)
For i = 0 To UBound(b)
b(i) = b(i) Xor 2
Next
str2 = b
Encode = str2
end function
--------------------编程问答--------------------
Option Explicit
Private Sub Command1_Click()
Dim i As Long
Dim str1 As String, str2 As String, str3 As String
str1 = Text1.Text
Dim b() As Byte
b = StrConv(str1, vbFromUnicode)
For i = 0 To UBound(b)
b(i) = b(i) Xor 2
Next
str2 = StrConv(b, vbUnicode)
Text1.Text = str2
End Sub
这一个函数就可以进行加密和解密。
--------------------编程问答--------------------
Option Explicit--------------------编程问答-------------------- 你们没看到我的要求是写成二个函数吗?写在一起或写成加密的函数好写,可是解密的UNEncode就难啊.!!!!!! --------------------编程问答-------------------- 你将加密函数复制一下改个名就叫解密函数了,由于你的加密算法的特殊性,你的加密算法和解密算法本身是一样的,看来别人的代码你都没试过。
Private Function encode(ByVal s As String) As String
Dim i As Long
Dim str1 As String, str2 As String, str3 As String
str1 = Text1.Text
Dim b() As Byte
b = StrConv(str1, vbFromUnicode)
For i = 0 To UBound(b)
b(i) = b(i) Xor 2
Next
str2 = StrConv(b, vbUnicode)
encode = str2
End Function
Private Sub Command1_Click()
Text1.Text = encode(Text1.Text)
End Sub
Option Explicit
Dim xx() As Byte
Private Function encode(ByVal s As String) As Byte()
Dim i As Long
Dim str1 As String, str2 As String, str3 As String
str1 = Text1.Text
Dim b() As Byte
b = StrConv(str1, vbFromUnicode)
For i = 0 To UBound(b)
b(i) = b(i) Xor 2
Next
encode = b
End Function
Private Function decode(b() As Byte) As String
Dim i As Long
Dim str1 As String, str2 As String, str3 As String
str1 = Text1.Text
For i = 0 To UBound(b)
b(i) = b(i) Xor 2
Next
decode = StrConv(b, vbUnicode)
End Function
Private Sub Command1_Click()
xx = encode(Text1.Text)
Text1.Text = ""
End Sub
Private Sub Command2_Click()
Text1.Text = decode(xx)
End Sub
--------------------编程问答-------------------- 你将加密函数复制一下改个名就叫解密函数了,由于你的加密算法的特殊性,你的加密算法和解密算法本身是一样的,看来别人的代码你都没试过。
Option Explicit
Dim xx() As Byte
Private Function encode(ByVal s As String) As Byte()
Dim i As Long
Dim str1 As String, str2 As String, str3 As String
str1 = Text1.Text
Dim b() As Byte
b = StrConv(str1, vbFromUnicode)
For i = 0 To UBound(b)
b(i) = b(i) Xor 2
Next
encode = b
End Function
Private Function decode(b() As Byte) As String
Dim i As Long
Dim str1 As String, str2 As String, str3 As String
str1 = Text1.Text
For i = 0 To UBound(b)
b(i) = b(i) Xor 2
Next
decode = StrConv(b, vbUnicode)
End Function
Private Sub Command1_Click()
xx = encode(Text1.Text)
Text1.Text = ""
End Sub
Private Sub Command2_Click()
Text1.Text = decode(xx)
End Sub
--------------------编程问答--------------------
真像老师在教训学生...... --------------------编程问答-------------------- “理直气壮” --------------------编程问答-------------------- 呵呵,语气不对,不好意思啊,我错了.:))))))) --------------------编程问答--------------------
不对哦,既然是函当选,里面就不应该出现Text1.Text这样的东东啊,我改了一下,可以加密,但是解密的那个我没有改出来,再帮我看看嘛 --------------------编程问答-------------------- 上面的打错字了,可是不让修改,在这里补改吧
……不对哦,既然是函数,里面就不应该出现Text1.Text这样的东东…… --------------------编程问答--------------------
--------------------编程问答-------------------- 关注 --------------------编程问答-------------------- up
Private Function Encode(ByVal s As String) As String
Dim b() As Byte
Dim i As Long
b = StrConv(s, vbFromUnicode)
For i = 0 To UBound(b)
b(i) = b(i) Xor 2
Next
Encode = StrConv(b, vbUnicode)
End Function
Private Function Decode(ByVal s As String) As String
Dim i As Long
Dim b() As Byte
b = StrConv(s, vbFromUnicode)
For i = 0 To UBound(b)
b(i) = b(i) Xor 2
Next
Decode = StrConv(b, vbUnicode)
End Function
'测试
Private Sub Command1_Click()
Dim s As String
s = "abcdefgABCDEFG中国"
s = Encode(s)
Debug.Print s
s = Decode(s)
Debug.Print s
End Sub
'结果:
c`afgdeC@AFGDE砸圾
abcdefgABCDEFG中国
补充:VB , 基础类