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

|