各位大虾,小弟初学VBA技术,水平有限,现在有个问题,需要读取单个文本的多个条件字符串,提取出来并拼接成为一个字符串填入其他单元格,如果用我下面的方法的话,只能适用于文本文件较小的情况下,因为我试验过, 当文本文件很大,且条件字符串相对靠后的话(因为读入strtemp缓冲中的长度受到限制),则会不能成功,看有没有别的办法能够解决我的问题,多谢各位了。
Sub EAB()
    Dim nFileSrc As Integer
    Dim strtemp As String        Open "D:\M2000.txt" For Input As #1            strtemp = Input(45000, #1)
            
            '获取Version关键字的起始位置,赋值给p1
            p1 = InStr(strtemp, "Version")
            MsgBox Mid(strtemp, p1 , 23)            '获取SMTXPWSWI关键字的位置
             p2 = InStr(strtemp, "SMTXPWSWI=")
            MsgBox Mid(strtemp, p2, 13)            '获取BUPWRSVSCHDL关键字的位置
             p3 = InStr(strtemp, "BBUPWRSVSCHDL=")
            MsgBox Mid(strtemp, p3, 17)            'SHEET2 页面增加多个字符串连接起来的信息并根据 GetName(Ke) 进行填充
            SHEET2Info.Add (GetName(Ke) & "\" & Mid(strtemp, p1, 23) & "\" & Mid(strtemp, p2, 13) & "\" & Mid(strtemp, p3, 17)), ""
           
            Close #1
      End Sub

解决方案 »

  1.   

    谢谢大哥,读取的文件非常大,10M的txt吧,我设置了45000的缓冲量都不够,关键字有多个,并且后续准备再扩充,现在只用到了P1,P2,P3三个关键,估计要扩展到N个关键,所以我觉得我的思想模式可能不适应大规模的文本,必须换种思想了?多谢大哥的帮助
      

  2.   

    http://blog.csdn.net/lyserver/archive/2009/04/24/4106290.aspx
    搜了一下,你看一下江南春大牛的博客,估计有用。
      

  3.   

    象10M那么大小的文件进行文本搜索,普通读取模式都不会很快。可以学习一下江南春大牛的内存映射方法。
    这个帖子对大文件讨论得比较多,你可以去看看http://topic.csdn.net/u/20100705/10/0e8226ca-05c8-4c9b-8195-49399584ae84.html