请各位高手帮我看看该怎样实现!急!解决后一小时内给分! ttyp(愿赌服输),能说的详细一些么,集合我没用过,能不能麻烦你给我个例子 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 直接使用mscomm的接收缓存区就可以了。然后用Timer处理数据就可以了。Private Sub tmrReceive_Timer() If comReceive.InBufferCount Then tmpReceive = txtReceive.Text Buffer = comReceive.Input For i% = LBound(Buffer) To UBound(Buffer) tmpReceive = tmpReceive & Hex(Buffer(i%)) & " " Next i% txtReceive.Text = tmpReceive txtReceive.SelStart = Len(txtReceive.Text) txtReceive.Refresh lLine = SendMessage(txtReceive.hwnd, EM_LINEFROMCHAR, -1, 0&) + 1 If lLine > txtReceive.Height / 185 Then txtReceive.Text = "" End If End Sub我的程序时将接受的数据显示在txtReceive内。你可以进行自己的处理(放在数组里就可以了),处理一段清除一段。 不过, huxiangming() 的上述代码,我一般是放在MSComm1_OnComm事件中执行的。 我现在初步想用mscomm的输入缓存区。,请大家帮我讨论一下究竟代码应该放在MSComm1_OnComm()还是Timer()中。我第一次自己做一个工程很多东西不太懂,请大家帮帮忙 sorry ,i don't known 如果你目前只是要比较放在MSComm1_OnComm()还是Timer()到底哪个事件好,可以参考MSDN自带的例程,就在你的VB安装目录下找。另外有个简单办法:在界面上做一个checkbox,选中时从timer事件中调用上述例程,未选中时从MSComm1_OnComm()中调用,即可比较出来。我估计没有本质区别。 不需要建立fifo只用他的缓冲区即可。MSComm空间有一个事件可以控制当缓冲区有数据时触发他,请蚕茧MSDN很容易。 我试了一下觉得应该用MSComm1_OnComm。但我接到的命令一般是分两次或三次读出。那么怎样在mscomm1_oncomm中执行命令呀 在MSComm1_OnComm中读数据。如果你的数据有明确的结尾标志的话,在有数据到来触发MSComm1_OnComm事件时,在循环读取缓冲区,直到缓冲区中没有数据或收到结尾标志(可以加适当的延时如1毫秒)。一般一个数据包是只触发一次MSComm1_OnComm事件的。然后再把收到数据进行处理。 VB6.0的Datagrid空间 怎么只对当前表格中的数据求和? DTPicker 中时分秒为什么一直不刷新呢 如何让windows记住登陆名 关于mciSendString的问题,困扰着我 急:如何在VB中编程创建索引服务的全文检索编录及目录? 一个真正可用于工控行业的COM/DCOM通讯 -> OPC 通讯 word中使用宏问题,急。一定给分,在线等候 小笑话,大家开心一下 请教:如何让同一服务器上的SQL2000和ACCESS7中数据库部分资料保持同步? 急救初哥! 再次请教:如何在窗体上拖动鼠标的时候画出虚线框,就像在Windows的桌面上一样。 烦死了,俺也散分
Private Sub tmrReceive_Timer()
If comReceive.InBufferCount Then
tmpReceive = txtReceive.Text
Buffer = comReceive.Input
For i% = LBound(Buffer) To UBound(Buffer)
tmpReceive = tmpReceive & Hex(Buffer(i%)) & " "
Next i%
txtReceive.Text = tmpReceive
txtReceive.SelStart = Len(txtReceive.Text)
txtReceive.Refresh
lLine = SendMessage(txtReceive.hwnd, EM_LINEFROMCHAR, -1, 0&) + 1
If lLine > txtReceive.Height / 185 Then txtReceive.Text = ""
End If
End Sub
我的程序时将接受的数据显示在txtReceive内。你可以进行自己的处理(放在数组里就可以了),处理一段清除一段。
sorry ,i don't known
另外有个简单办法:在界面上做一个checkbox,选中时从timer事件中调用上述例程,未选中时从MSComm1_OnComm()中调用,即可比较出来。我估计没有本质区别。
MSComm空间有一个事件可以控制当缓冲区有数据时触发他,请蚕茧MSDN很容易。
如果你的数据有明确的结尾标志的话,在有数据到来触发MSComm1_OnComm事件时,在循环读取缓冲区,直到缓冲区中没有数据或收到结尾标志(可以加适当的延时如1毫秒)。一般一个数据包是只触发一次MSComm1_OnComm事件的。然后再把收到数据进行处理。