1:请教在文件中查找指定文字,该如何做,谢谢!!!
2:想读取指定行数据(如18行),请教该如何写代码,谢谢!!!
3:如何判断一行(有数据)后面一行为空格行,谢谢!!!

解决方案 »

  1.   

    用fso(scripting 的那个),一行一行读readline,然后每行查找字符串
      

  2.   

    把文本文件内容读取TextBox:
    Dim TempFile As Long
    Dim LoadBytes() As ByteTempFile=FreeFile
    Open 文件名 For Binary As #TempFile
    Redim LoadBytes(1 To Lof(TempFile)) As Byte
    Get #TempFile,,LoadBytes
    Close TempFileText1.Text=StrConv(LoadBytes,vbUniCode)'查找制定的文字
    Private Function GetX(ByVal strSource As String, ByVal strX As String) As Integer
        Dim i As Integer
        Dim j As Integer
        
        i = InStr(1, strSource, strX)
        j = 0
        Do While i <> 0
            i = InStr(i + 1, strSource, strX)
            j = j + 1
        Loop
        
        GetX = j
    End Function
      

  3.   

    也可以读到一个listbox中,可以直接操作制定行,用trim判断空行。
      

  4.   

    FileNumber = FreeFile
    Open "指定路径文本文件" For Input As #FileNumber
    Do While Not EOF(FileNumber)                  '开始循环文本行
       Line Input #FileNumber, strLine
       '查找指定文字
       If InStr(strLine, "指定文字") <> 0 Then
          …………      
       End If
       '读取指定行数
       x = x + 1
       if x = 18 then
          …………
       End If
       '判断空行
       if len(strline) = 0 then
          …………
          Upline             '处理上一行 :)
       End If
       Upline = strline      '保留上一行,待下一行为空行时使用,办法笨一点,但实用
    Loop
    Close #FileNumber
      

  5.   

    '判断空行  要加上trim
       if len(trim(strline)) = 0 then
      

  6.   

    谢谢两位帮助,能否提供一个例子:
    如有一:a.txt
    内容为:aaaa
    eeee
    gggg
    hhhhffff
    hhhh
    hhhh我想查找aaa在第几行,并把aaa下面的到空行之间的每行数据(行数不确定)显示出来:
    aaaa
    eeee
    gggg
    hhhh
    谢谢!!!!
      

  7.   

    FileNumber = FreeFile
    Open "指定路径文本文件" For Input As #FileNumber
    Do While Not EOF(FileNumber)                  '开始循环文本行
       Line Input #FileNumber, strLine
       txt = txt & vbCrLf &strline
       '判断空行
       if len(strline) = 0 then
          text1.text = txt
       End If
    Loop
    Close #FileNumber
      

  8.   

    谢谢!!!
    请您帮助看看已下问题:
    在command1里,显示找到给定字符串行数
    在command2里,显示给定行数的字符串
    我想把command1里找到的行数直接赋给command2里的行数,如在command1里找到的行数为2,那么就读取lngLine +2,lngLine +4,lngLine +6的数据,请教该如何修改以下代码,谢谢!!!!
    Private Sub Command1_Click()
    Dim lngLine As Long
    Dim strLine As String    Open "C:\aaa.txt" For Input As #1
            Do Until EOF(1)
                lngLine = lngLine + 1 '记数
                Line Input #1, strLine '一行一行地读
                If Trim(strLine) = "如果是第2行就打印出来" Then   '如果是第2行就打印出来
                MsgBox lngLine '行数
                    Print lngLine
                End If
            Loop
        Close #1 '关闭打开的文件
        
        
    End SubPrivate Sub Command2_Click()
    Dim lngLine As Long
    Dim strLine As String
        Open "C:\aaa.txt" For Input As #1
            Do Until EOF(1)
                lngLine = lngLine + 1 '记数
                Line Input #1, strLine '一行一行地读
                If lngLine = 2 Then '如果是第2行就打印出来
                MsgBox strLine
                    Print strLine
                End If
                If lngLine = 4 Then  
                MsgBox strLine '显示字符串
                    Print strLine
                End If
                If lngLine = 6 Then  
                MsgBox strLine '显示字符串
                    Print strLine
                End If
                If lngLine = 8 Then  
                MsgBox strLine '显示字符串
                    Print strLine
                End If
            Loop
        Close #1 '关闭打开的文件
    End Sub
      

  9.   

    Dim filetxt As String, x As Variant, i As Integer, Lines As Integer
        Txtfile = "文本文件"
        filetxt = String(FileLen(Txtfile), " ")
        Open Txtfile For Binary As 1
        Get #1, , filetxt
        Close 1
        x = Split(filetxt, vbCrLf)          '得到一个x()数组,每一个x元素是一行文本
        Lines = UBound(x)                   '得出文本总行数,从x(0)开始,最后一行是空行    For i = 0 To Lines - 1
            '开始查找你的起始行得到变量s
            If InStr(x(i), "指定字符") > 0 Then
                s = i + 1                   '当某一行包含指定字符时,将行数赋值给 s
                Exit For                    '退出循环
            End If
        '…………
        Next
        For i = s To lins - s
            '开始处理
        i = i + 1          '增加一个隔行
        Next