标题:有没有大神在帮忙看一下,想写一个加密程序,把数字加密成对应字母,但是出 ...
只看楼主
起个名好难
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2018-10-20
 问题点数:0 回复次数:11 
有没有大神在帮忙看一下,想写一个加密程序,把数字加密成对应字母,但是出来的结果只能加密1位数字
Private Sub Command2_Click()
Dim str1 As String, str2 As String
Dim i As Integer, ch As String * 1
str1 = Text1.Text

For i = 1 To Len(str1)

  ch = Mid(str1, i, 1)
  
  Select Case ch
    Case 0: str2 = "n"
    Case 1: str2 = "p"
    Case 2: str2 = "m"
    Case 3: str2 = "x"
    Case 4: str2 = "b"
    Case 5: str2 = "l"
    Case 6: str2 = "7"
    Case 7: str2 = "g"
    Case 8: str2 = "e"
    Case 9: str2 = "w"
  End Select
  
  
    str2 = str2 + ch
  
  Next i
  str2 = StrReverse(str2)
  
  Text2.Text = str2
搜索更多相关主题的帖子: 加密 结果 位数 String Case 
2018-10-20 15:03
wlrjgzs
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:26
帖 子:212
专家分:1566
注 册:2017-4-10
得分:0 
程序代码:
Private Sub Command2_Click()
  Dim str1 As String, str2 As String
  Dim i As Integer, ch As String
  str1 = Text1.Text
  For i = 1 To Len(str1)
    ch = Mid(str1, i, 1)
    Select Case ch
      Case 0: str2 = "n"
      Case 1: str2 = "p"
      Case 2: str2 = "m"
      Case 3: str2 = "x"
      Case 4: str2 = "b"
      Case 5: str2 = "l"
      Case 6: str2 = "7"
      Case 7: str2 = "g"
      Case 8: str2 = "e"
      Case 9: str2 = "w"
    End Select
    str2 = str2 & ch    //这里把+换成&
  Next i
  str2 = StrReverse(str2)
  Text2.Text = str2
End Sub
2018-10-20 16:03
起个名好难
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2018-10-20
得分:0 
回复 2楼 wlrjgzs
还是不对   加密出来还是只加密最后一位数
2018-10-20 16:45
起个名好难
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2018-10-20
得分:0 
回复 2楼 wlrjgzs
2018-10-20 16:47
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
得分:0 
1、 ch = Mid(str1, i, 1) ch为字符型
2、 Select Case ch
   Case 0 为数值型
3、 如果内容为123
  Select Case ch
  Case "0"
  Case "1"
  Case "2"
  或者
  Select Case val(ch)
  Case 0
  case 1
4、如果内容为字符p,q
  case "p"对应处理就行
 case "q"
 你的程序select case 根本就没执行到内部,ch只是最后取得字符



[此贴子已经被作者于2018-10-20 18:35编辑过]

2018-10-20 18:33
yingshu
Rank: 4
等 级:贵宾
威 望:10
帖 子:49
专家分:212
注 册:2018-7-24
得分:0 
Private Sub Command2_Click()
  Dim str1 As String
  Dim str2 As String
 dim temp as string
  Dim i As Integer
  dim ch(9) As String
  ch(0)="n",ch(1)="p",ch(2)= "m",ch(3)"x",ch(4)="b",ch(5)="c",ch(6)="d",ch(7)="ne",ch(8)="f",ch(9)="g"
  str1 = Text1.Text
  For i = 1 To Len(str1)
   temp = Mid(str1, i, 1)
      str2=str2&ch(val(temp))
    Next i
   Text2.Text = str2
End Sub

''''str2=“n”,每次判断后重新赋值,之前的判断结果没有保存,所以结果只能保存最后一位
'''赋值语句改为str2=str2&“n”,噢啦,妥妥滴,

知识有限,仅供参考,希望对你有帮助

[此贴子已经被作者于2018-10-20 22:00编辑过]

2018-10-20 21:49
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
得分:0 

程序代码:
Private Sub Command1_Click()
  Dim Strx As String, chx As String, I As Integer, CH
  CH = Array("n", "p", "m", "x", "b", "t", "s", "g", "e", "w")   '修改了二个字符 l-t 7-s
  For I = 1 To Len(Text1.Text)
   chx = Mid(Text1.Text, I, 1)
      Strx = Strx & CH(Val(chx))
    Next I
   Text2.Text = Strx
End Sub

上面程序使用数组存储转换字符,然后取出数字,以数字对应数组的值转换为字符

[此贴子已经被作者于2018-10-21 07:02编辑过]


请不要选我!!!
2018-10-21 05:48
起个名好难
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2018-10-20
得分:0 
回复 7楼 ZHRXJR
非常感谢  我试过了  很完美  
2018-10-21 21:05
nmcfbgttyl
Rank: 2
等 级:论坛游民
帖 子:11
专家分:15
注 册:2013-1-2
得分:0 
回复 7楼 ZHRXJR
您好,怎样再反转换回来呢,就是再把字母转换成数字,谢谢您!
2018-11-05 20:52
yingshu
Rank: 4
等 级:贵宾
威 望:10
帖 子:49
专家分:212
注 册:2018-7-24
得分:0 
同样的数组,
遍历数组
判断相符,取其索引
字符链接


标准的数组查询



[此贴子已经被作者于2018-11-5 22:47编辑过]

2018-11-05 22:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-490529-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.256224 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved