实时采集数据保存
Private Sub Command1_Click()
If Command1.Caption = "停止" Then
Timer1.Enabled = False
Command1.Caption = "开始"
Else
Command1.Caption = "开始"
Timer1.Enabled = True
Command1.Caption = "停止"
End If
'Set CancelError is True*****************打开文本文件写采集数据的程序*****
CDSave.CancelError = True
On Error GoTo ErrHandler
' Set flags
CDSave.Flags = cdlOFNHideReadOnly Or cdlOFNOverwritePrompt
' Set filters
CDSave.Filter = "All Files (*.*)|*.*|Data Files" & _
"(*.data)|*.data"
' Specify default filter
CDSave.FilterIndex = 2
' Display the Save dialog box
CDSave.InitDir = "f:\Data\"
CDSave.ShowSave
If CDSave.FileName <> "" Then
Open CDSave.FileName For Output As #1
Print #1, CStr(jiasu) & " " & CStr(jiasu)
Close #1
End If
MsgBox ("数据已储存!")
Unload FormSaveData
Exit Sub
ErrHandler:
'User pressed the Cancel button
Exit Sub
End Sub
*********************一下是定时器内部程序**************
Private Sub Timer1_Timer()
Timer1.Enabled = False
Dim ErrInfo As VCI_ERR_INFO
If m_connect = 0 Then
Timer1.Enabled = True
Exit Sub
End If
Dim length As Long
Dim str As String
length = VCI_Receive(m_devtype, m_devind, m_cannum, frameinfo(0), 50, 10)
'50用来接收的数据祯数组的长度
'等待超时时间
If length <= 0 Then
VCI_ReadErrInfo m_devtype, m_devind, m_cannum, ErrInfo '注意:如果没有读到数据则必须调用此函数来读取出当前的错误码,
'千万不能省略这一步(即使你可能不想知道错误码是什么)
Timer1.Enabled = True
Exit Sub
End If
If Hex(frameinfo(0).ID) = "18" Then
If frameinfo(0).RemoteFlag = 0 Then
Dim a0, a1, a2, a3, a4, a5, a6, a7 As Integer
For i = 0 To 25
a0 = frameinfo(0).data(0)
a1 = frameinfo(0).data(1)
a2 = frameinfo(0).data(2)
a3 = frameinfo(0).data(3)
a4 = frameinfo(0).data(4)
a5 = frameinfo(0).data(5)
a6 = frameinfo(0).data(6)
a7 = frameinfo(0).data(7)
jiasu = a(i)
End If
End If
Timer1.Enabled = True
End Sub
好像保存数据那句仅仅响应了一次 给预期的实时不一致,高手给指点一下,
--------------------编程问答-------------------- Open CDSave.FileName For Output As #1
改为
Open CDSave.FileName For append As #1
试试 --------------------编程问答-------------------- UPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUP
补充:VB , 基础类