悬赏200分vb编程问题(不太难)

来源:百度知道 编辑:UC知道 时间:2024/09/24 02:33:26
假如我有一个txt文件,文件名为a.txt内容为

from张三to李四
张三:李四啊!最近还好吗?
我是张三啊,还记得我吗?
from王二to李四
王二:最近还好吗?
好久不见了!!
from李四to王二
李四:我很好啊!你呢?
from李四to张三
李四:记得啊,怎么可能不记得呢?晕。。。
from张三to王二
张三:王二我是张三
from王二to张三
王二:知道了,张三兄弟。

要求将含有张三的聊天纪录提取出来,存为b.txt
也就是将form***to###
只要***和###中含有张三就将其聊天纪录提取出来

运行结果为:
b.txt的内容应该是
张三:李四啊!最近还好吗?
我是张三啊,还记得我吗?
李四:记得啊,怎么可能不记得呢?晕。。。
张三:王二我是张三
王二:知道了,张三兄弟。

问题:(1)vb代码怎么写?写得好追加100分
(2)请尽量写上注释以防我看不懂

在VB中拖2个Text,分别命名为Text1和Text2..下面写代码

'打开a.txt文本文件
Open App.Path + "\a.txt" For Binary As #1
Text1.text = Input(LOF(1), 1)
Close 1

Dim tiqu As String '要提取哪个的对话
Dim text() As String '存放分割后的文本
tiqu = "张三" '提取关键字是张三

'把文本以换行 + From分割开,存在Text数组变量中
text = Split(Text1.text, vbCrLf + "from")

'循环判断
For i = 0 To UBound(text)
'判断代码中是否含有关键字
If InStr(text(i), "from" + tiqu) <> 0 Or InStr(text(i), "to" + tiqu) <> 0 Then
'提取关键字
Text2.text = Text2.text + Right(text(i), Len(text(i)) - InStr(text(i), vbCrLf) - 1) + vbCrLf
End If
Next

'写出b.txt文本文件
Open App.Path + "\b.txt" For Output As #1
Print #1, Text2.text
Close 1