刚学求大神讲解
vb吧
全部回复
仅看楼主
level 5
ecfanqie 楼主
2020年12月08日 03点12分 1
level 15
正常做法是从原始字符串中依次取出每个字符,加1并按规则转换之后连接成新的字符串,参考代码:
For i = 1 To Len(Text1.Text)
c = Mid(Text1.Text, i, 1)
t = Val(c) + 1
If t = 10 Then
Text2.Text = Text2.Text & "A"
Else
Text2.Text = Text2.Text & t
End If
Next i
这里再提供一个【原位】【使用Hex函数】转换的“偏门”方法:
s = Text1.Text
For i = 1 To Len(s)
Mid(s, i, 1) = Hex(Val(Mid(s, i, 1)) + 1)
Next i
Text2.Text = s
2020年12月08日 04点12分 2
谢谢大佬,刚才在实验课上做不出来,看了这个懂了很多
2020年12月08日 05点12分
level 14
最小行数压缩:
Private Sub Command1_Click()
Text2 = Hex(CDec("&h" & Text1) + CDec("&h" & Replace(Space(Len(Text1)), " ", "1")))
End Sub
讲解:
CDec("&h" & Text1) '将输入值以16进制模式解读,转换为可用于计算的十进制
Len(Text1) 'Len函数获取输入值的长度(因为如果以零开头也要计入)
CDec("&h" & Replace(Space(输入文本的长度), " ", "1"))) '利用space函数获得等数量的空格文本,然后用替换函数把所有空格替换成1,然后把这些1以16进制模式解读,转换为可用于计算的十进制
Hex(输入值十六转十 + 等量1十六转十) '将两个十进制值相加,然后重新转换为十六进制,即得输出结果。
2020年12月11日 17点12分 4
使用数值类型进行计算的方法是会有位数限制的,比如Long型最多8位十六进制数,即使是Decimal型最多也只有24位十六进制数,而用String类型逐位处理则不会有位数限制;另外,可以直接用String函数获得一串1:String(Len(Text1.Text), "1")
2020年12月12日 01点12分
2020年12月12日 01点12分
1