标题:关于 INPUT 函数问题-超出文件尾
只看楼主
renxiaoyao36
Rank: 9Rank: 9Rank: 9
来 自:七宝中学
等 级:贵宾
威 望:31
帖 子:347
专家分:1077
注 册:2014-9-18
结帖率:92.31%
已结贴  问题点数:10 回复次数:5 
关于 INPUT 函数问题-超出文件尾
Dim a As Integer
Open (App.Path + "\cptemp\system32.sav") For Input As #1
Input #1, a
Close #1
ListView1.ListItems(1).SubItems(1) = a
红色那一段,会不定时的出现错误。(我有两个程序,另外一个程序不定时打开App.Path + "\cptemp\system32.sav"这个文件并更新数字。
这是另外一个程序的全部代码。
Dim sys32 As Integer
MyFile = Dir("C:\WINDOWS\System32\*.*")
    Open (App.Path & "\sdsave\WINDOWS\system32\" & sys32 & ".sav") For Output As #1
 Print #1, MyFile
   Close #1
 sys32 = sys32 + 1
 Open (App.Path & "\cptemp\system32.sav") For Output As #3
 Print #3, sys32
bksys32:
On Error GoTo ersys32
MyFile = Dir
    Open (App.Path & "\sdsave\WINDOWS\system32\" & sys32 & ".sav") For Output As #1
Print #1, MyFile
   Close #1
sys32 = sys32 + 1
 Open (App.Path & "\cptemp\system32.sav") For Output As #3
 Print #3, sys32
GoTo bksys32
ersys32:
End
注:上下两端代码不是同一个程序的代码,是两个程序。上面的代码运行之前先执行shell下端代码的程序。
搜索更多相关主题的帖子: 金华 
2014-11-02 09:36
renxiaoyao36
Rank: 9Rank: 9Rank: 9
来 自:七宝中学
等 级:贵宾
威 望:31
帖 子:347
专家分:1077
注 册:2014-9-18
得分:0 
补充:上部分的代码是timer1的,interval为1

编程蛋疼的不是枯燥,而是辛辛苦苦编完几百行的代码,运行,“Runtime Error “xxx””。
2014-11-02 09:40
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:10 
在写的过程中,那边读,就会导致
写的时申请了 空间,但还没写完。
这时去读,就超出文件尾了。
进程间资源冲突。

这样的的数据交换的话。
有二种建议。
1、使用 通讯 ,不管是 DDE ,还 是 TCP ,或者 消息, 都可以。
2、使用数据库。写数据时,要先写标志位。

另外还有,使用内存映像文件,但感觉这个还是会导致出错。
------------------
PS ,定时器,最小精度是 100 ,小于100 的,差不多也是按100在使用。

授人于鱼,不如授人于渔
早已停用QQ了
2014-11-02 13:41
renxiaoyao36
Rank: 9Rank: 9Rank: 9
来 自:七宝中学
等 级:贵宾
威 望:31
帖 子:347
专家分:1077
注 册:2014-9-18
得分:0 
楼上说的我不大懂。。。惭愧,我VB从2013年9月学到现在只学完了所有基础控件,一点点的外部接口语句,API和数据库以及数组我都不会用,不过楼上版主给个示范代码我就懂了,我大部分的学习都是看别人的源代码自己乱试的。

编程蛋疼的不是枯燥,而是辛辛苦苦编完几百行的代码,运行,“Runtime Error “xxx””。
2014-11-02 19:14
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
DDE   不建议使用,这个我不也太清楚怎么用。没用过。
TCP   网络通讯。
消息  新手不建议使用,调试起来很容易导致 VB 死掉。

建议你这个程序使用 TCP 或 数据库。

1、TCP    对应的还有一个 UDP 。
区别一个是有连接,一个是无连接。
TCP,先连接,后发数据,能确定是否收到。
UDP,不管连接,直接发数据,不能确定是否收到。
先建立一个主机,开启一个侦听端口,这个作为服务器端。你这里可以把接收数据的当作服务器端。
建立客户机,连接服务器端侦听的端口,连接成功后,每次数据更新,都把数据发给 服务器端。
服务器端,收到数据后就可以显示出来。
代码你百度一下,大把的有。

2、数据库。
简单一点的数据库,就使用 MDB 吧。
可以使用 data 控件绑定数据库中的数据表,然后不断的更新第一条记录的该字段。
显示端,也绑定该表,然后不断读第一条记录的该字段,发现数据有变化,变立刻显示该字段。
这个百度上也有大把的代码。

授人于鱼,不如授人于渔
早已停用QQ了
2014-11-03 08:01
renxiaoyao36
Rank: 9Rank: 9Rank: 9
来 自:七宝中学
等 级:贵宾
威 望:31
帖 子:347
专家分:1077
注 册:2014-9-18
得分:0 
我这些都是本地运行,目标是在无网络连接的情况下运行。所以,楼上说的我不能用。。。不过,我还是自己解决了。TIMER计时器中的代码前我加了
on error resume next
这样子就好了。

编程蛋疼的不是枯燥,而是辛辛苦苦编完几百行的代码,运行,“Runtime Error “xxx””。
2014-11-03 16:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-438003-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.430648 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved