字符串转换的两个实用函数(access VBA)-朱亦文
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


字符串转换的两个实用函数(access VBA)

发表时间:2007/5/17 评论(0) 浏览(11057)  评论 | 加入收藏 | 复制
   
摘 要:转换字符串的函数。
正 文:

 

    在有的时候我们使用RC4来编码数据,但产生的字符串已经不是正常的字符串,在存储过程中会造成混乱,以致于无法用RC4来还原原来的数据。
    解决问题办法就是将这个不正常的字符串进行转换后存储,取出时再转换回来。

两个函数如下:

 1'将一个字符数组转换成以逗号分隔的数字字符串
 2'作者:朱亦文
 3'时间:2006.12.13
 4Function String2Num()Function String2Num(ByVal s As String) As String
 5    If s = "" Then Exit Function
 6   
 7    Dim i As Integer, l As Integer
 8    Dim ByteGB() As Byte
 9   
10    ByteGB = s
11    l = UBound(ByteGB)
12    For i = 0 To l
13        String2Num = String2Num & "," & ByteGB(i)
14    Next
15    String2Num = Mid(String2Num, 2)
16End Function
17
18'将以逗号分隔的数字字符串还原成一个字符数组
19'作者:朱亦文
20'时间:2006.12.13
21Function Num2String()Function Num2String(ByVal s As String) As String
22    If s = "" Then Exit Function
23   
24    Dim aCh, i As Integer, l As Integer
25   
26    aCh = Split(s, ",")
27    l = UBound(aCh)
28    ReDim ByteGB(l) As Byte
29   
30    For i = 0 To l
31        ByteGB(i) = CInt(aCh(i))
32    Next
33    Num2String = ByteGB
34End Function
35
附: 刘小军先生的RC4函数
 1'conKey是加密时的密钥,可以自己更改
 2Private Const conKey = "zy123456789"
 3
 4Public Function RC4()Function RC4(strInp As String) As String
 5'=================================
 6'RC4加密函数
 7'=================================
 8'修改:刘小军(Alex) 2002-3-22
 9'适用于使用UNICODE的双字节ACCESS,测试证明支持中英文混合的文本加密
10'=================================
11'参数:
12'    strInp  需要加密或解密的字符串
13'=================================
14'
15'这是修改过的RC4加密方法,主要更改是把密钥固定在程序中了
16'使用方法:
17'   RC4("345G4")得到"345G4"加密之后的字符串
18'   RC4(RC4("345G4"))可以将加密后的字符串还原为"345G4"
19'
20Dim s(0 To 255) As Byte, K(0 To 255) As Byte, i As Long
21Dim j As Long, Temp As Byte, Y As Byte, t As Long, x As Long
22Dim Outp As String
23
24For i = 0 To 255
25    s(i) = i
26Next
27
28j = 1
29For i = 0 To 255
30    If j > Len(conKey) Then j = 1
31    K(i) = Asc(Mid(conKey, j, 1))
32    j = j + 1
33Next i
34
35j = 0
36For i = 0 To 255
37    j = (j + s(i) + K(i)) Mod 256
38    Temp = s(i)
39    s(i) = s(j)
40    s(j) = Temp
41Next i
42
43i = 0
44j = 0
45For x = 1 To Len(strInp)
46    i = (i + 1) Mod 256
47    j = (j + s(i)) Mod 256
48    Temp = s(i)
49    s(i) = s(j)
50    s(j) = Temp
51    t = (s(i) + (s(j) Mod 256)) Mod 256
52    Y = s(t)
53    
54    Outp = Outp & ChrW(AscW(Mid(strInp, x, 1)) Xor Y)
55Next
56    RC4 = Outp
57End Function
附2:Access911.net 陈格(cg1)先生的代码(比之自己编写的转换函数更好)

Access软件网交流QQ群(群号:198465573)
 
 相关文章
保留 / 去除字符串内的数字  【在水一方  2014/6/28】
【SQLServer自定义函数】取出字符串中的汉字、字母或是数字  【金宇  2015/4/14】
【Access小品】引经据典--格式化字符串替换示例  【煮江品茶  2015/4/23】
将控件\变量中的字符串复制到剪切板  【易勋  2015/7/23】
【Access示例】用正则表达式提取字符串内的数字  【杨雪  2015/7/30】
常见问答
技术分类
相关资源
文章搜索
关于作者

朱亦文

文章分类

文章存档

友情链接