如何让对话框中 只能输入二进制数1,0,并且不能超过16位,一小时 揭帖,求助............

huangyoucheng 2004-08-11 06:46:12
期待中
...全文
87 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
BlueBeer 2004-08-11
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3238/3238636.xml

你看一下上面帖子里我的最后一个回复吧
huangyoucheng 2004-08-11
  • 打赏
  • 举报
回复
老大 你太好了。。但是能不能解释一下找个程序啊。 比如

ToBin = Num Mod 2 & ToBin
Num = Num \ 2

ToDec = ToDec * 2 + CLng(Mid(BinStr, i, 1))

谢谢了
BlueBeer 2004-08-11
  • 打赏
  • 举报
回复
//把 这了16个存入两个字节中?

做为字符串是肯定不能存到2个字节里啦,只能把它当二进制数字处理,把它减去32767,然后存在一个integer里,这样才能是两字节
恢复的时候先转成数字再加上32767呗,好像只能这样了

下面是进制转换的代码

Function ToBin(Num As Long) As String
Do
ToBin = Num Mod 2 & ToBin
Num = Num \ 2
Loop While Num
End Function

Function ToDec(BinStr As String) As Long
Dim i As Long
For i = 1 To Len(BinStr)
ToDec = ToDec * 2 + CLng(Mid(BinStr, i, 1))
Next i
End Function
jordi2014 2004-08-11
  • 打赏
  • 举报
回复
private sub form_load()
text1.maxlength=16
end sub
huangyoucheng 2004-08-11
  • 打赏
  • 举报
回复
我是 初学 不要见怪, 你有qq吗? 怎么联系啊,好多问题,郁闷中。
KiteGirl 2004-08-11
  • 打赏
  • 举报
回复
这还不容易吗?
Private Sub Text1_KeyPress(KeyAscii As Integer)
if keyascii<>vbkey0 or keyascii<>vbkey1 or Len(Text1.Text)>=16 then keyascii=0
End Sub
huangyoucheng 2004-08-11
  • 打赏
  • 举报
回复
那么如何 控制最多输入16个 并且把 这了16个存入两个字节中? 谢谢
jordi2014 2004-08-11
  • 打赏
  • 举报
回复
'写错了,应该是
Private Sub Text1_KeyPress(KeyAscii As Integer)
if keyascii<>vbkey0 or keyascii<>vbkey1 then keyascii=0
End Sub
jordi2014 2004-08-11
  • 打赏
  • 举报
回复
Private Sub Text1_KeyPress(KeyAscii As Integer)
if keyascii<>0 or keyascii<>1 then keyascii=0
End Sub

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧