当前位置:编程学习 > VB >>

实时采集数据保存


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 ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,