日期:2012-05-27  浏览次数:20500 次

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是解密