有文本文件,规定每行一条数据,也就是后面有回车换行符,现在发现文件每行结束的地方没有回车符,只有一个换行符,要怎么分行啊?代码如下:
   Open App.Path & fPath & FileName For Input As #1        
      While Not EOF(1)
         Line Input #1, tmpStr
            GetVals (tmpStr)
            DoEvents
         End If
      Wend
   Close #1
《Line Input # 语句一次只从文件中读出一个字符,直到遇到回车符 (Chr(13)) 或回车–换行符 (Chr(13) + Chr(10)) 为止。回车–换行符将被跳过,而不会被附加到字符串上。》引用MSDN。GetVals是我处理一行数据的一个过程,现在是没有回车符 (Chr(13))程序会把所以的数据当成一行数据读出,这样就会出问题,请问用什么方法可以读文本,可以按换行符分行?在线等待,谢谢大家了!

解决方案 »

  1.   

    open filename for input as #1
     get #1,str
    close #1
    i=1
    do while i<len(str)
      j=instr(i,str,chr(10))
      str1=left(str,j-1)
      getvals(str1)
      i=j+1
      str=right(str,len(str)-j)
    loop
      

  2.   

    用lineinput 读到一行用split拆分
      

  3.   

    谢谢回复,不过还有个问题,接受到的文件有些是回车+换行符分行,有些只有一个换行符。而且文本可能会有几十K大。Line Input可以支持这么大吗?split拆分时,碰到这两种情况可能也要分开处理了。
      

  4.   

    dim buff() as byte
    dim i as long
    dim filename as string
    filename=你的文件名
    i=filelen(filename)
    redim buff(i-1)
    open filename for binary as #1
    get #1,,buff
    close #1
    dim s as string
    s=strconv(buff,vbunicode)
    s=replace(s,vbcrlf,vblf)
    dim arr
    arr=split(s,vblf)
    for i=0 to ubound(arr)
    debug.print arr(i)  '输出各行数据
    next
      

  5.   

    用fso    Dim Fso As New FileSystemObject, TxtFile As File, Ts As TextStream,S as String    Set TxtFile = Fso.GetFile(FileName)
        Set Ts = TxtFile.OpenAsTextStream(ForReading)
        Do While Not Ts.AtEndOfStream
            S = Ts.ReadLine
            .
            .
            .
        Loop    Ts.Close
        Set Fso = Nothing