如下情况,实在想不出什么好办法,望高手指点!!!

在TEXT1输入3个字符,可能是a1b、ca2、1ad、2ac...等等..(关键在于这里,3个字符是随机的,可能出现的组合有很多。。。
现在要做的就是把text1里面的三个字符转换成我说的那样,
如题。a替换为12...b替换成23...c替换成24...2替换成14
比如我在TEXT1输入alb则输出123123。。。 ca2则输出241214。。。
1ad则输出311241。。。 2ac则输出141224。。。
请问如何实现。。。回答好的,详细的加分,真的!!!
我编的代码失败在于这里,希望大家不要犯跟我一样低级的错误
1)将text1里面的a1b的a替换成12'这时text1=121b
2)将text1里面的a1b的1替换成31。。。’这时替换的就不是a1b而是121b
.............

青春有我
浏览 140回答 1
1回答

扬帆大鱼

实现的方法很多,下面随便给出一种用结构体实现的方法:Private Type MyDict '定义一个源字符与目的字符的结构体Src As String '源字符,如“a”Dest As String '转换后的目的字符,如"12"End TypePrivate Function Convert(s As String) As String'函数说明:'参数s,是需要转换的源字符串,如a1b'返回值:转换后的字符串,如123123'注:函数本身不限制源字符串长度Dim MyDictList(5) As MyDict '用于存储转换规则的数组,可根据具体要求修改数组大小Dim i, j As Integer '循环变量Dim TempRes As String '用于存储临时结果的临时变量TempRes = ""Convert = ""'开始定义详细的转换规则MyDictList(0).Src = "a"MyDictList(0).Dest = "12"MyDictList(1).Src = "1"MyDictList(1).Dest = "31"MyDictList(2).Src = "b"MyDictList(2).Dest = "23"MyDictList(3).Src = "c"MyDictList(3).Dest = "24"MyDictList(4).Src = "2"MyDictList(4).Dest = "14"MyDictList(5).Src = "d"MyDictList(5).Dest = "41"'关键的转换部分For i = 1 To Len(s)TempRes = Mid(s, i, 1)For j = 0 To UBound(MyDictList)If MyDictList(j).Src = Mid(s, i, 1) ThenTempRes = MyDictList(j).DestExit ForEnd IfNextConvert = Convert & TempResNextEnd Function使用方法:把上述代码复制过去以后,直接调用Convert函数,如MsgBox Convert("a1b")即可在对话框中弹出结果
打开App,查看更多内容
随时随地看视频慕课网APP