比如我要读c:\test.txt的第10行第5个字符后的3个字符
怎么读出?

解决方案 »

  1.   

    Dim FileNumber As Integer
    FileNumber = FreeFile
    Open Trim(sFileName) For Input As #FileNumber
        For i = 1 To 10
            Line Input #FileNumber, TextLine
        Next已经读出第10行
    sTxt=mid(TextLine,5,3)              ___
                 (  ">
                  )(
                 // )  [email protected]
              --//""------------
              -/------   
      

  2.   

    可以先定义一个字符串数组,然后在数组中就可以直接操作了我见很多程序都是这么处理文件的,是用字符缓冲区—————————————————————————————————
    ┏━★━━◆━━★━┓ 
    ♂欢|◢CSDN◣|使♂        ▲自由保存帖子,浏览,关注检测
    ┃迎|◥论坛助手◤|用┃        ▲完善的CSDN客户端工具
    ┗━☆━━◇━━━☆┛       ▲自动添加签名......让你更快,更爽,更方便地上CSDN...
    http://www.csdn.net/expert/topic/573/573604.xml
    http://www.chinaok.net/csdn/csdn.zip
      

  3.   

    我这个办法最有效:
    Private Sub Form_Load()
    Dim filetxt As String
    filetxt = String(FileLen("文本文件"), " ")
    Open "文本文件" For Binary As 1
    Get #1, , filetxt
    Close 1
    Hx = Split(filetxt, vbCrLf)如果想操作第5条记录:
    List = Hx(4)
    End Sub
      

  4.   

    seek #FileNumber, 5
    不是定位在第5行,而是从某行的第5个字符开始读。
      

  5.   

    所以光用seek是不能解决问题的,如果不怕浪费资源可以考虑用FSO对象实现
      

  6.   

    'FSO对象的实现方法
    '注意引用microsoft scripting runtime对象
    Option ExplicitPrivate Sub Command1_Click()
        Dim FSO As New FileSystemObject
        Dim tstream As TextStream
        Set tstream = FSO.OpenTextFile(App.Path + "\123.txt")
        Dim str As String, i As Long
        For i = 1 To 2 '跳过两行
            tstream.SkipLine
        Next
        tstream.Skip 5 '再跳过5个字符
        str = tstream.Read(3) '从当前位置读出3个字符
        Set tstream = Nothing
        MsgBox str
    End Sub