注册 登录
编程论坛 VB6论坛

那位高手帮忙写一个VB监控txt文件的代码?万分感激。弄的一天了都弄不出来,新手

pchanghe 发布于 2013-04-08 14:21, 807 次点击
VB监控一个TXT,如TXT内容有变化,则将变化了的内容(与上一次不同的那部分内容)输出到TXT1的文本框
8 回复
#2
jialei_luo2013-04-08 14:35
100文
#3
pchanghe2013-04-08 14:53
帮忙下啊
#4
风吹过b2013-04-08 16:24
没写过这种的程序。

基本流程如下:
1、打开这个TXT文件,把内容全部读到内存里。
2、调用API,监视这个TXT文件。这步,我没写过。
3、收到 TXT文件有变化的消息时,打开这个TXT文件,读内容。
4、与上次的内容相比较,算法你自己搞定。显示不同的地方。 这步,我也没写过。
#5
pchanghe2013-04-08 17:03
谢谢
我现在写出了一部分
Private Sub Command1_Click()
Open "d:\1.txt" For Input As #1
Open "d:\3.txt" For Output As #3
Open "d:\2.txt" For Input As #2
Do While Not EOF(2)

If EOF(1) = True Then
Line Input #2, b
Print #3, b
Else
Line Input #1, a
Line Input #2, b
End If

Loop

Close (1)
Close (2)
Close (3)
End Sub
#6
pchanghe2013-04-08 17:06
1.text 和 2.text 如果有不同的只是后面的不同如
1.text

a
b
c
d

2.text
a
b
c
d
e
#7
wube2013-04-08 22:13
若档案有被修改过~最后修改时间一定会改变~
定时查询比对最后修改时间~有变再进去查就好了~
查法我只写过VC6的~VB6太慢~

简单点的去Call出UltraEdit的比对功能~
#8
seafish0112013-04-09 15:28
以下是引用pchanghe在2013-4-8 17:06:16的发言:

1.text 和 2.text 如果有不同的只是后面的不同如
1.text

a
b
c
d

2.text
a
b
c
d
e

用数组也可以实现
程序代码:
    Open "c:\1.txt" For Input As #1
    Do While Not EOF(1)
        i = i + 1
        ReDim Preserve a(i)
        Line Input #1, a(i)
    Loop
    Close #1
    Open "c:\2.txt" For Input As #2
    Do While Not EOF(2)
        j = j + 1
        ReDim Preserve b(j)
        Line Input #2, b(j)
    Loop
    Close #2

剩下就是比较这两个数组了用个判断语句就可以实现了
#9
成铭2013-04-12 07:36
都大神啊,小白伤不起
1