高手们帮帮我,一个VB小问题
Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.PortOpen = True
MSComm1.InputMode = comInputModeBinary
MSComm1.RThreshold = 1
Dim a As Long
End Sub
Private Sub MSComm1_OnComm()
Dim BytesReceived() As Byte
Dim buffer As String
Dim HData As String
Dim i As Integer
Select Case MSComm1.CommEvent
Case comEvReceive '接收十六进制数据。并以十六进制显示
MSComm1.InputLen = 0
buffer = MSComm1.Input '接收数据至字符串中
BytesReceived() = buffer '将数据转入Byte数组中
For i = 0 To UBound(BytesReceived) '显示结果以十六进制显示
If Len(Hex(BytesReceived(i))) = 1 Then
HData = HData & "0" & Hex(BytesReceived(i))
Else
HData = HData & Hex(BytesReceived(i))
End If
Text1.Text = HData
'最后将结果后入Text1中
MSComm1.OutBufferCount = 0 '清除发送缓冲区
MSComm1.InBufferCount = 0 '清除接收缓冲区
Next
End Select
End Sub
这是我的程序,现在要采集数据,就是HData,怎么每隔1S保存一个HData值呢,(注:HData可以在屏幕中显示),有具体的代码吗??拜托啦
[解决办法]
单纯保存一个值,如果数据库不熟悉,就保存到txt也可以,连时间一起保存。
放一个定时器控件,间隔为1000ms
Private Sub Timer1_Timer()
Open App.Path() & "\save.txt" For Append As #1
Print #1, Now & " " & Text1.Text
Close #1
End Sub
[解决办法]
'根据你的实际情况来改这个常数
Private Const desktop_path As String = "D:\Documents and Settings\Administrator\桌面"
Private Sub Timer1_Timer()
Open desktop_path & "\save.txt" For Append As #1
Print #1, Format(Now, "yyyy-mm-dd HH:nn:ss") & vbTab & Text1.Text
Close #1
End Sub
如果希望代码通用,就以用 API 取桌面路径。见:
http://topic.csdn.net/u/20100428/18/b24d9027-9c2b-4809-a6dd-0f06f59589c0.html?seed=1182803751&r=65214886#r_65214886