例如如果我将vb窗体的原代码保存为.txt文件,然后想将该文件中的所有函数的定义和事件也就是想将(private sub)或者是(private function)所在行的内容全部显示出来,如何进行。谢谢

解决方案 »

  1.   

    先将整个文件读入一个字符串,然后用split函数以vbcrlf换行符作为分隔符,分解该字符串,再添加到一个listbox中就可以了
      

  2.   

    在指定文件中查找字符串
    Function FileContains (FileName As String, SearchText As String) As Long
    Dim FileNumber As Integer
    Dim FileLength As Long
    Dim Chunk As String
    Dim ChunkStart As Long
    Dim FoundAt as LongConst MaxChunk = 20000
    On Error GoTo FileContainsError
    FileNumber = FreeFile
    Open FileName For Binary Access Read Shared As FileNumber
    FileLength = LOF(FileNumber)
    ChunkStart = 0
    Do Until ChunkStart = FileLength
        If FileLength - ChunkStart > MaxChunk Then
            Chunk = Input$(MaxChunk, FileNumber)
            ChunkStart = ChunkStart + MaxChunk - Len(SearchText)    
         Else
            Chunk = Input$(FileLength - ChunkStart, FileNumber)
            ChunkStart = FileLength    
        End If
            FoundAt = InStr(Chunk, SearchText)    
    If FoundAt > 0 Then
            FileContains = FoundAt        
    Exit Do    
    End If
    Loop
    Close FileNumber
    Exit FunctionFileContainsError:    Select Case Err        
    Case Else
                MsgBox Error$ & " on file " & FileName    
        End Select
         Exit Function
    End Function
      

  3.   

    对文件文件的读取采用textstream最方便,引用scripting run time
    dim objFs as new filesystemobject
    dim objtext as textstreamSet objText = objFS.OpenTextFile(FileName, ForReading)Do Until objText.AtEndOfStream
       strtext=objtext.readline
       ....
    loop 打开文件后,按行读取,判断每行是否以private sub ,private function开始,代码很简单,你完善一下就可以了。
      

  4.   

    补充一下,VB的源文件(frm,bas,cls)都是以文本文件方式存放的,不用另存为txt文件
      

  5.   

    如何用for each语句读出某个目录下的所有的.txt文件呢?
      

  6.   

    for each 不能实现你的要求'查找某种类型文件,将名称保存在数组中,Ubound(数组)的值即为文件个数
    Sub aaa()
        Dim strFileName() As String
        Dim filename As String
        Dim j As Long
        j = -1
        filename = Dir(路径 & "*.txt")
        Do While filename <> ""
             If filename <> "." And filename <> ".." Then
                  j = j + 1
                  ReDim Preserve strFileName(j + 1)
                  strFileName(j) = filename
             End If
             filename = Dir   ' 查找下一个文件。
        Loop
    End Sub
      

  7.   

    SoHo_Andy(冰)的方法没错,我原来就是这么写的,不过用filesystemobject更简单些
    dim objfs as new filesystemobject
    dim objfls as files
    dim objfl as fileset objfls=objfs.getfiles
    for each objfl in objfls
     debug.print objfl.filename
    next
      

  8.   

    dim objfs as new filesystemobject
    dim objfls as files
    dim objfl as fileset objfls=objfs.getfiles("C:\aa")
    for each objfl in objfls
     debug.print objfl.filename
    next报错set objfls=objfs.getfiles("C:\aa")处 ,提示.getfiles类型不匹配
      

  9.   

    然后我将此处改为set objfls=objfs.getfiles(Dir("c:\aa")),提示.getfiles类型不匹配
      

  10.   

    不好意思,是我写错了,不过你也可以看看相关的帮助啊
    dim objfs as new filesystemobject
    dim objfls as Folder     '是folder不是files,上次写错了
    dim objfl as fileset objfls=objfs.getfolder("C:\")        
    for each objfl in objfls.files
     debug.print objfl.filename
    next
    这段代码是获得指定目录下的所有文件,要获得指定扩展名的文件,可以这样处理
    if objfs.GetExtensionName(path)="txt" then         ’path是完整路径end if 
      

  11.   

    如何将包含某几个字符组合的词现实出来?(就是两个空格之间的,或者是空个与回车之间的词),是不是用for语句来循环查找,有没有简单一点的方法。
      

  12.   

    使用Instr函数
    str1="Private Sub"
    str2="Private"
    if instr(str1,str2)>0 then
          msgbox "找到了"
    end if
      

  13.   

    firechun(天火),我找的是包含某个字符串组合的一个词,不是看这个字符串中是不是存在要找得词,