作者dunn (月光遗留下深深叹息)
看板Visual_Basic
标题Re: [VB6 ] 一边写档一边读档
时间Thu Dec 22 01:18:47 2005
自问自答...XD 刚刚灵机一动想到的
用On Error goto Label
只要EOF了 就会跳到Label那边去
然後只要设定Seek FileNumber, Seek(FileNumber)
(简单说就是把现在读取的档案指标再原封不动指定一次)
在这指定的过程中的 如果档案有变动的话 EOF马上会变FALSE
然後下个RESUME 然後就可以继续INPUT了
如果没有变动 就会像是在Listening一样
不过这样的回圈会付出一点CPU代价就是了.. XD
附上程式片段 希望可以帮助有需要的人 :D
程式片段:
Open "dump.txt" For Input Shared As #10
On Error goto Err
Do
Line Input #10, a
Debug.Print a
Loop
End
Err:
If EOF(10) Then Seek 10, Seek(10)
DoEvents
Resume
※ 引述《dunn (月光遗留下深深叹息)》之铭言:
: 不知道这样标题有没有清楚表达我的意思
: 我有一个exe 支援stdio 所以他执行的结果可以一边跑一边丢到一个TXT去
: 很像是背景程式
: 只是这个程式写死了 不可能去动里面让我把结果传出来
: 所以我想法是 用一边写入 VB这里一边读进来处理
: 程式大概是这样的
: XX = Shell(Prog, vbMaximizedFocus)
: Open "dump.txt" For Input Shared As #10
: Do
: Input #10, a
: Debug.Print a
: DoEvents
: Loop
: 本来没加SHARED 结果EOF 了 而且LOF(10)是一个定值
: 後来加了之後 还是EOF 就中断在红色这行
: 可是在即时运算里 LOF(10)一直在增加 照理说应该就可以往下了 但是就是过不去这行
: 还是出现EOF
: 请问各位先进 要怎麽样才能够继续向下执行呢?
: 另外还有一个问题 假设上述问题解决了
: 如果背景程式跑的不够快 VB已经走到档案结尾
: 除了用TIMER LOOP来闲置 之後再往下移动外
: 有什麽东西可以检查说 档案已经有新资料了 可以继续往下呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.113.101.50