用VB编写一个程序 搜索TXT文本中两个关键字 并将两个字符中间的文本输出并保存为一个文本文件

用VB编写一个程序 搜索TXT文本中两个关键字 并将两个字符中间的文本输出并保存为一个文本文件 然后继续寻找下一处 就是一串加工代码 想把每层的都提取出来单独保存为一个文件 搜索两个关键词中间的代码为一层 求高手帮忙编个程序啊

Function findit(s, k1, k2)  '返回所有s中在关键词k1和k2之间的内容,分行显示
    stri = ""
    Do
        f1 = InStr(s, k1)
        If f1 = 0 Then Exit Do
        f2 = InStr(f1, s, k2)
        If f2 = 0 Then Exit Do
        stri = stri & Mid(s, f1 + Len(k1), f2 - f1 - Len(k1))
        stri = stri & vbCrLf  '若不期望分行显示,修改这句
        s = Mid(s, f2 + Len(k2))
    Loop
    findit = stri
End Function
Private Sub Command1_Click()
    '选取VB菜单的“工程/引用”命令:引用了“Microsoft Scripting Runtime”对象
    Dim fs As New FileSystemObject
    '打开d:\temp.txt,读取所有文本保存在stri,以keyword1和keyword2为关键字,
    '找出在stri中两个关键字内的内容
    '以换行符为分隔符保存在stri1中
    Set fn = fs.OpenTextFile("d:\temp.txt", ForReading)
    stri = fn.ReadAll
    keyword1 = "("
    keyword2 = ")"
    stri1 = findit(stri, keyword1, keyword2)
    fn.Close
    
    '把stri1的内容写入d:\temp1.txt中
    Set fn = fs.OpenTextFile("d:\temp1.txt", ForWriting, True)
    fn.Write stri1
    fn.Close
    
    Set fn = Nothing
    Set fs = Nothing
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-07
使用 Instr()函数,并结合 Mid()函数。
比如:
dim s as integer
dim e as integer
Lstr ="qw2start1234end12yu78"

s = instr(Lstr,"start") '返回4
e = instr(Lstr,"end") '返回13
x = mid(Lstr,s + 5,e-(s+5)) '其中5是“start”的字符个数
x 就是 “start”与“end”之间的饿文本本回答被网友采纳
相似回答