简单的数组操作字符串,加密可用
2004-11-18 14:24
801 查看
Public Function ary(str)
Dim a()
Dim b()
Dim lenstr '字符串长
Dim i, j '循环变量
Dim ouflag
lenstr = Len(str)
If lenstr Mod 2 = 1 Then
'长度为奇
ouflag = False
lenstr = lenstr + 1
ReDim a(2, lenstr / 2)
a(2, lenstr / 2) = Chr(20) '最后一个补空格
Else
'长度为偶
ReDim a(2, lenstr / 2)
ouflag = True
End If
ReDim b(lenstr / 2, 2)
For i = 1 To lenstr
If i <= lenstr / 2 Then
a(1, i) = Mid(str, i, 1)
Else
If ouflag = True Then
a(2, i - lenstr / 2) = Mid(str, i, 1)
Else
If i <> lenstr Then
a(2, i - lenstr / 2) = Mid(str, i, 1)
End If
End If
End If
Next
For i = 1 To 2
For j = 1 To lenstr / 2
b(j, i) = a(i, j)
Next
Next
For j = 1 To lenstr / 2
For i = 1 To 2
ary = ary & b(j, i)
Next
Next
If ouflag = False Then
ary = Left(ary, lenstr - 1)
End If
End Function
Public Function unary(str)
Dim a()
Dim b()
Dim lenstr '字符串长
Dim i, j '循环变量
Dim ouflag
lenstr = Len(str)
If lenstr Mod 2 = 1 Then
'长度为奇
ouflag = False
lenstr = lenstr + 1
ReDim a(lenstr / 2, 2)
a(lenstr / 2, 2) = Chr(20) '最后一个补空格
Else
'长度为偶
ReDim a(lenstr / 2, 2)
ouflag = True
End If
ReDim b(2, lenstr / 2)
For i = 1 To lenstr
If i = lenstr And ouflag = False Then
a(lenstr / 2, 2) = " "
Else
If i Mod 2 = 1 Then
a((i + 1) / 2, 1) = Mid(str, i, 1)
Else
a(i / 2, 2) = Mid(str, i, 1)
End If
End If
Next
For i = 1 To 2
For j = 1 To lenstr / 2
b(i, j) = a(j, i)
Next
Next
For i = 1 To 2
For j = 1 To lenstr / 2
unary = unary & b(i, j)
Next
Next
If ouflag = flag Then
unary = Left(unary, lenstr - 1)
End If
End Function
用了你就知道用处了:
dim strg
strg="123456789"
strg=ary(strg)
unary是解密
Dim a()
Dim b()
Dim lenstr '字符串长
Dim i, j '循环变量
Dim ouflag
lenstr = Len(str)
If lenstr Mod 2 = 1 Then
'长度为奇
ouflag = False
lenstr = lenstr + 1
ReDim a(2, lenstr / 2)
a(2, lenstr / 2) = Chr(20) '最后一个补空格
Else
'长度为偶
ReDim a(2, lenstr / 2)
ouflag = True
End If
ReDim b(lenstr / 2, 2)
For i = 1 To lenstr
If i <= lenstr / 2 Then
a(1, i) = Mid(str, i, 1)
Else
If ouflag = True Then
a(2, i - lenstr / 2) = Mid(str, i, 1)
Else
If i <> lenstr Then
a(2, i - lenstr / 2) = Mid(str, i, 1)
End If
End If
End If
Next
For i = 1 To 2
For j = 1 To lenstr / 2
b(j, i) = a(i, j)
Next
Next
For j = 1 To lenstr / 2
For i = 1 To 2
ary = ary & b(j, i)
Next
Next
If ouflag = False Then
ary = Left(ary, lenstr - 1)
End If
End Function
Public Function unary(str)
Dim a()
Dim b()
Dim lenstr '字符串长
Dim i, j '循环变量
Dim ouflag
lenstr = Len(str)
If lenstr Mod 2 = 1 Then
'长度为奇
ouflag = False
lenstr = lenstr + 1
ReDim a(lenstr / 2, 2)
a(lenstr / 2, 2) = Chr(20) '最后一个补空格
Else
'长度为偶
ReDim a(lenstr / 2, 2)
ouflag = True
End If
ReDim b(2, lenstr / 2)
For i = 1 To lenstr
If i = lenstr And ouflag = False Then
a(lenstr / 2, 2) = " "
Else
If i Mod 2 = 1 Then
a((i + 1) / 2, 1) = Mid(str, i, 1)
Else
a(i / 2, 2) = Mid(str, i, 1)
End If
End If
Next
For i = 1 To 2
For j = 1 To lenstr / 2
b(i, j) = a(j, i)
Next
Next
For i = 1 To 2
For j = 1 To lenstr / 2
unary = unary & b(i, j)
Next
Next
If ouflag = flag Then
unary = Left(unary, lenstr - 1)
End If
End Function
用了你就知道用处了:
dim strg
strg="123456789"
strg=ary(strg)
unary是解密
相关文章推荐
- [转贴] 在.NET中嵌入和使用资源文件
- 中华人民共和国万岁
- 好的学习网站登记
- 太郎先生上周去世了
- 当鼠标移动到图片上时```就会出现一个保存和另存为 提示。大家估计都见过,怎么去掉它呢
- 外科医生最喜欢给什么人做手术
- SafeMapping
- 认识一个新的工具 ANTS Profiler
- 用数组移动字符串
- C#写的email 初级系统源代码
- Oracle得到M到N条记录的写法:
- 关于SQLSERVER数据操作的常用类库
- CU Play Shell 十三问之:echo 知多少
- 动态切换窗体风格
- 十大暴利商品曝光
- 我就要和相处一年的女友结婚了...现在唯一困挠我的是,我未来的小姨子
- JavaScript实现下拉菜单对文本框赋值的小功能
- 关于鼠标和键盘的全局获取的一个类
- 这些坏习惯你有吗?
- 关于Oracle数据库中行迁移/行链接的问题