观察到大写的字符没变化
你输入“abcdefghijklmnopqrstuvwxyz”
看它转化为什么样子,以后就可以一一对应转换回来了

解决方案 »

  1.   

    o--@5
    w--*6
    e--¥3
    a-@9
    u--#9
    c--#8
    s--`3
    f--`5
    u--#9
    l--¥1
    n=#6
    g=*7
      

  2.   

    楼上这位兄弟写的大家都会
    我想问一下RainBows(大毛),原文中有没有数字,他们是否也被编码了?
    因为这明显是一种二维编码方式,横坐标是数字,纵坐标是符号,根据出现的解码方式来看,至少是5×7(5个符号@#$^*,7个数字1356789),大写字母没有编码,所以对于小写字母的编码方式多出了35-26=9个,考虑到v有可能没有编码的话,这个空间正好是给0-9十个数字留的。
      

  3.   

    楼上讲得有道理!to RainBows:
    有多几个编码后的句子吗?没有原文也没有问题!
      

  4.   

    '在VB6 中新建一个工程,放入两个label
    'label1.caption="H@5*6 @1@5 B¥3 @9 S#9#8#8¥3`3`3`5#9¥1 L@9#6*7#9@9*7¥3 L¥3@9*8#6¥3*8?"
    'label3.caption=""
    'label3.caption存放转换后的字符串。]
    '把下列代码拷贝到代码窗口,运行即可。
    Option ExplicitPrivate Sub Form_Activate()
    Dim sSou As String
    Dim sDes As String
    Dim sTem As String
    Dim sTem2 As String
    sSou = Label1.Caption & " "Dim I As Long
    While InStr(sSou, " ") <> 0
        sTem2 = Left(sSou, InStr(sSou, " ") - 1)
        sTem = exchange(sTem2)
        sSou = Right(sSou, Len(sSou) - InStr(sSou, " "))
        Label3.Caption = Label3.Caption + sTem + " "
    Wend
    End Sub
    Private Function exchange(ByVal str As String) As String
    Dim I As Long
    Dim temp As String
    'MsgBox Len(str)
    If Len(str) Mod 2 <> 0 Then
        exchange = Left(str, 1)
        For I = 2 To Len(str) Step 2
            temp = Mid(str, I, 2)
            exchange = exchange + changetable(temp)
        Next I
    Else
        If Right(str, 1) = "?" Then
            exchange = exchange + Left(str, 1)
            For I = 2 To Len(str) - 1 Step 2
            temp = Mid(str, I, 2)
                exchange = exchange + changetable(temp)
            Next I
            exchange = exchange + "?"
        Else
            For I = 1 To Len(str) Step 2
                temp = Mid(str, I, 2)
                exchange = exchange + changetable(temp)
            Next I
        End If
        
    End IfEnd Function
    Private Function changetable(ByVal str As String) As StringSelect Case str
        Case "@5"
              changetable = "o"
        Case "*6"
            changetable = "w"
        Case "@1"
            changetable = "t"
        Case "¥3"
            changetable = "e"
        Case "@9"
            changetable = "a"
        Case "#9"
            changetable = "u"
        Case "#8"
            changetable = "c"
        Case "`3"
            changetable = "s"
        Case "`5"
            changetable = "f"
        Case "¥1"
            changetable = "l"
        Case "#6"
            changetable = "n"
        Case "*7"
            changetable = "g"
        Case "*8"
            changetable = "r"
    End Select
    End Function
      

  5.   

    因为每个字母对应的是二个字符,所以可以用以下方法转换
    Dim i As Long, kMove As Long
    Dim wordStr As String, oneStr As String, Result As String, KRes As String
    i = 0
    kMove = 1
    While string1 <> ""
    i = InStr(0, string1, " ")
    wordStr = Left(string1, i - 1)
    oneStr = Left(wordStr, 2)
    While oneStr <> ""
    If Asc(oneStr) > 65 And Asc(oneStr) < 90 Then
    Result = Chr(Asc(oneStr))
    oneStr = Mid(oneStr, 2)
    Else
    Result = Translation(oneStr)
    oneStr = Mid(oneStr, 3)
    End If
    KRes = KRes + Result
    Wend
    KRes = KRes + " "
    string1 = Mid(string1, i + 1)
    Wend
    KRes = KRes + "." 'KRes就是结果了。
    Private Function Translation(ByVal valStr As String)
    Dim str As String
    Select Case valStr
    Case "@5"
     str = "o"
    Case "*6"
     str = "w"
    Case "@9"
     str = "a"
    Case "#8"
     str = "u"
    '...以此类推
    End Select
    End Function
      

  6.   

    算法还没有搞清楚就编程啦!程序replace不就得啦!还要写这么多代码吗?
      

  7.   

    楼上说的有道理,不过毕竟那些代码也比较实用。况且他的课本显然是本英语教材
    (How to Be a Successful Language Learner?好像是大学英语一的第一课)所以数字毕竟是少数。
      

  8.   

    非常感谢大家的热情!我再提供一些说明:他的文件是文本格式的。不仅英文加了密。DBF文件中的中文也作了变换。    H@5*6 @1@5 B¥3 @9 S#9#8#8¥3`3`3`5#9¥1 L@9#6*7#9@9*7¥3 L¥3@9*8#6¥3*8?
        “L¥3@9*8#6#0#6*7 @9 ¥1@9#6*7#9@9*7¥3 #0`3 ¥3@9`3¥0. E@0¥3#6 @9 #8@2#0¥1`6 #8@9#6 `6@5 @@!”
        M@5`3@1 @9`6#9¥1@1`3 *6@2@5 @9*8¥3 ¥1¥3@9*8#6#0#6*7 @9 `3¥3#8@5#6`6 ¥1@9#6*7#9@9*7¥3 *6@5#9¥1`6 `6#0`3@9*7*8¥3¥3 *6@@@2 ** `3@1@9@1¥3^4¥3#6@1. F@5*8 ##^4, ¥1¥3@9*8#6#0#6*7 @9 ¥1@9#6*7#9@9*7¥3 #0`3 @9 @0¥3*8¥0 `6#0`5`5#0#8#9¥1@1 @1@9`3*5. T@2¥3¥0 #6¥3¥3`6 @2#9#6`6*8¥3`6`3 @5`5 @2@5#9*8`3 @5`5 `3@1#9`6¥0 @9#6`6 ^7*8@9#8@1#0#8¥3, @9#6`6 ¥3@0¥3#6 ** *6#0¥1¥1 #6@5 *7#9@9*8@9#6@1¥3¥3 `3#9#8#8¥3`3`3 `` ¥3@0¥3*8¥0 @9`6#9¥1@1 ¥1@9#6*7#9@9*7¥3 ¥1¥3@9*8#6¥3*8.原文:How To Be a Successful Language Learner?
    "Learning a language is easy. Even a child can do it!"
    Most adults who are learning a second language would disagree with this statement. For them,learning a language is a very difficult task. They need hundreds of hours of study and practice, and even this will no guarantee success for every adult language learner.
     
      

  9.   

    我在前面提供的是一种方法,只要按照具体要求修改一下。就可以解决问题的首先得有26 个小写字母的对应的转换值(在changetable(..)  中修改。其次要解决的是标点符号剖题.