有一个办法可以试试,你每次用程序实现将保存数据的文本文件复制一份到新的文本文件,然后读取新的文件,读取完后,将这个新的文件删除就可以了
复制文件语句:
filecopy 源文件全路径及文件名,目标文件全路径及文件名
删除文件语句:
kill 目标文件全路径及文件名
不涉及API
事件一般是够的。只是如果文件粉大就可能在打开文件上面造成影响,你的各种处理问题不大,主要是文档的打开关闭会有影响。
另外可以建立挂钩或者监视该文件,该文件发生改变则读取。你不能读取整个文本来用mid,这样效率会非常低(在文件很大的情况下),最好直接读取第N行的数据。
当然了,因为是文本文件,你可以尝试每次读取后记录文件大小,下次读取的时候直接用二进制或者什么方式读取文件后面部分的数据,然后再对它进行操作,我没有测试过,只是一个思路,你可以试验看看
...不停循环打开和关闭么?
就连一个空的死循环都可以把cpu占用很高,这种更是
每次打开文件,然后往里面写一个数据然后关闭文件
与
打开一次文件,不关闭,然后到需要的时候往里面写数据
前者要慢很多
那么如何用VB复制正在使用(读写)的文本文件?
Private Sub Command1_Click()
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile App.Path & "\1.txt", "E:\", True
End Sub
路径你可以自己设定,在每隔1秒执行一次复制,因为你文件更新了复制的文件也更新了,也就是说你没必要删除文件,就每1秒读你复制的文件就行了
实际上这样也要关闭你复制的文件才能更新数据,所以建议你找源代码,然后进行数据库操作,不然你删除文件,或者频繁开关文件是一样的,最好把数据全部保存了在去读取吧 ,万一不行,数据不大的话,1秒的时间也绝对够了
理论上这个串口是给数据,而不是写文件的。再看看说明,找函数。
用Timer。
这个程序可以参考“西部集团杯”八届初赛磁盘\程序设计素材中的demo3.exe文件。