软件功能是定时的采集数据然后累计
最初软件存在两个问题:1.没有防止重复累计的功能,也就是说如果这个时段的数据已经累计过了,再次采集的话软件不会判断,仍然写入文件。2.顺序不能保证,假如5点的数据没有采集到,6点数据采到了,则6点数据写入文件,过后人工采集5点的数据成功,则在文件中,5点和6点的数据顺序就是错的,导致根据文件内的数据画图的时候,图曲线出现折回的现象。现在就是要解决这两个问题:一方面判断已经累计过的数据就不再累计进文件,另一方面,最大程度保证数据是按时间顺序累计的。我现在是设定了一些关于采集和累计的全局变量,程序运行的时候可以根据这些变量判断这个时段的数据是否已经采集或者累计,但是问题时软件关闭重新运行的时候,这些变量都被清空,最好能实现一种保存机制,能够一直保存这些信息。
Vb中文件的写操作只有overwrite 和append?如果要在文件某一位置插入一些数据,怎么做呢??这部分调了两天了,总觉得不满意,有好多bug,这个软件是要长时间运行的,不稳定的话会有很多问题~~~哭死
最初软件存在两个问题:1.没有防止重复累计的功能,也就是说如果这个时段的数据已经累计过了,再次采集的话软件不会判断,仍然写入文件。2.顺序不能保证,假如5点的数据没有采集到,6点数据采到了,则6点数据写入文件,过后人工采集5点的数据成功,则在文件中,5点和6点的数据顺序就是错的,导致根据文件内的数据画图的时候,图曲线出现折回的现象。现在就是要解决这两个问题:一方面判断已经累计过的数据就不再累计进文件,另一方面,最大程度保证数据是按时间顺序累计的。我现在是设定了一些关于采集和累计的全局变量,程序运行的时候可以根据这些变量判断这个时段的数据是否已经采集或者累计,但是问题时软件关闭重新运行的时候,这些变量都被清空,最好能实现一种保存机制,能够一直保存这些信息。
Vb中文件的写操作只有overwrite 和append?如果要在文件某一位置插入一些数据,怎么做呢??这部分调了两天了,总觉得不满意,有好多bug,这个软件是要长时间运行的,不稳定的话会有很多问题~~~哭死
解决方案 »
- 查询排序
- 中文系统如何读取日文字符。在线等...........
- 再问RichTextBox的格式化输入,主要是图片怎么显示在指定位置!
- MsFlexGrid导入到txt文件中,用户可以自己来确定文件名(这个打开的txt文件不命名),就象打开记事本写了后,由自己来确定命名
- 昨天下午4:20,偶又添了一个妹妹!
- 怎么用正则表达式抓出"QQ"后面的数字?这"QQ"后面可能会跟个冒号(中英文符号都可能),也可能跟个"号:"这样,还可能有个空格
- 在vb中插入记录到sql server 中的语句
- 使用VB.NET对Xml文档进行读取与操作
- fuxc(Michael):快来领分!
- 那里可以下载msdn的中文版???
- 求VB做的C/S模式的系统客户端怎样实现版本更新?
- 关于XML的问题
目的文件是比如NowDayFile这个文件把
Set D2 = fs.OpenTextFile(NowDayFile, 8, True, 0),open04260500.txt这个文件,然后一行一行的把数据累计到NowDayFile里面。
所以数据不用加编号或备注的,关键在累计的过程
如何在累计之前,判断这个文件的内容是否已经被累计过了,或者当前要累计的文件不是按照时间顺序到达的,那么有没有办法把它插入到适当的时间位置?
===========================
留言收到。
看看那个仪器采集到的数据是否包含时间标识。
你的问题我觉得最好用数据库的方法来解决。简单方便。。
但并不是说你一定要使用access或要安装sql server之类的数据库。
只要你的数据格式统一,文本文件都可以作为数据源的
最好可以贴出采集数据、NowDayFile、04260500.txt的样本。
这是小时文件名例:Z_NEP_51747_20060331140000可以区分项目,站点采集时间
文件内容例:
20060331140000 Avg 282.52 27.5 7.3 882.6 27.5
20060331140500 Avg 274.12 27.5 7.3 882.6 27.7
20060331141000 Avg 270.21 27.4 7.3 882.7 27.5
第一项就能看出采集时间,五分钟一个数据
日文件名实例:52203_P_20060417日文件也是区分站点,项目和数据属于哪一天,这是4月17号,它要把一天24小时的小时文件都累计进来
文件内容实例:
2006041700:5505 OK 136.40 122.80 436.60 316.20 5572.93 '这是0点55分,下面可以看出0点的数据又累计了一遍,即重复累计
2006041700:0005 OK 107.20 258.10 436.60 316.20 5566.19
2006041700:0505 OK 119.60 258.10 436.60 316.20 5566.82 '下面是2点的数据,中间缺了1点的数据
20060417020005 OK 57.90 92.10 121.10 315.40 5580.12
20060417020505 OK 41.10 92.10 121.10 315.40 5580.31
20060417021005 OK 38.50 92.10 121.10 315.40 5580.50 大致就是这种情况
阿毛说的建立文件存放采集信息倒是不会被清空内容,但是存放信息条数怎么限制阿,不限制的话,时间信息越来越多,那采集之前的判断不是要进行很久阿~~
昨天我也尝试把采集时间信息存在access里的数据表里,如何限制存放的信息条数,比如设定就存放200条,满了就清空或者循环再从头存
皑皑,问题越想越多,脑子不够转了~~~
把所有采集回来的数据都堆到一个文件里去,不用管它有没有重复。。
把这个文件作为数据源,然后使用DISTINCT参数进行查询统计就行了
然后再用select distinct输出数据库中的内容到普通文件中,作为日文件,也就是日文件的内容是从数据库中取出来然后按时间顺序累计的。
然后再用select distinct输出数据库中的内容到普通文件中,作为日文件,也就是日文件的内容是从数据库中取出来然后按时间顺序累计的。
=============================================
就是这个意思。。
还是不行吗??????