SIL凡丁 2018-10-08 19:08 采纳率: 100%
浏览 770
已采纳

如何用VB编程实时刷写数据?

我现在有一个txt文件,在持续采集传感器数据过程中,存储达到指定值前10000个数据。
我希望可以持续写入数据,达到10000个后,每采集一个就删除最早的一个,保持10000个数据,最后达到指定值时,停止采集并停止写入,留存最后那10000个数据。

  • 写回答

2条回答 默认 最新

  • yaowf 2018-10-11 19:19
    关注

    若采集的过程不会太长,可考虑先在内存做完,再一次写入txt文件。

    用Queue可以简单达成你的需求,下面是sample code,请参考。

         Private Sub LogLatestNValue(Optional ByVal N As Integer = 10000)
            Dim ResultSet As New Queue(Of Decimal)
            Dim dValue As Decimal = 0D
    
            Do While True
                dValue = GetSensorValue()
                If ResultSet.Count = 10000 Then
                    ResultSet.Dequeue()
                End If
                ResultSet.Enqueue(dValue)
                If dValue >= dTargetValue Then
                    Exit Do
                End If
            Loop
    
            WriteRsultSet2Txt(ResultSet)
        End Sub
    
        Private Sub WriteRsultSet2Txt(ByVal ResultSet As Queue(Of Decimal))
            Dim sResult As String = ""
    
            Try
                Do While True
                    If ResultSet.Count = 0 Then
                        Exit Do
                    End If
                    sResult += ResultSet.Dequeue().ToString() + Environment.NewLine
                Loop
                IO.File.WriteAllText(sTargetFileName, sResult)
            Catch ex As Exception
    
            End Try
        End Sub
    

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 宝塔面板一键迁移使用不了
  • ¥15 求一个按键录像存储到内存卡的ESP32CAM代码
  • ¥15 如何单独修改下列canvas推箱子代码target参数?,插入图片代替其形状,就是哪个绿色的圆圈每关用插入的图片替代
  • ¥20 四叉树的创建和输出问题
  • ¥15 javaweb连接数据库,jsp文件加载不出来
  • ¥15 matlab关于高斯赛德尔迭代的应用编撰。(相关搜索:matlab代码|迭代法)
  • ¥15 损失匹配问题,求解答
  • ¥15 3500常用汉字书法体检测数据集下载
  • ¥15 odoo17在制造模块或采购模块良品与次品如何分流和在质检模块下如何开发
  • ¥15 Qt音乐播放器的音乐文件相对路径怎么写
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部