Open AS_FilePath For Input As FileNo
    
    Do Until EOF(FileNo)
        DoEvents
        
        Line Input #FileNo, gsAry_File(i)
        i = i + 1
    Loop读一个csv文件的时候,如果文件内的行是以crlf结尾的时候i的返回值是正确的,但是文件结尾是lf不是crlf的时候,返回值i等于1。
有没有什么办法让i在只有lf结尾的时候也能正常返回文件行数

解决方案 »

  1.   

    这样读效率太低了。dim bufBytes() as byte,bufStr as string
    Open AS_FilePath For binary As FileNo
    redim bufBytes(lof(fileno)-1)get fileno,,bufBytes
    close filenobufStr=strconv(bufBytes,vbUnicode)gsAry_File=split(bufStr,vblf)i=ubound(gsAry_File)+1i就是行数
      

  2.   

    都读进来,然后split
    i的问题上因为你最后一行还是有一个换行所以i=ubound()
      

  3.   

    谢谢,还想引深一下,现在判断lf,crlf都好用了,要是只有cr哪?
      

  4.   

    修改这句:
    gsAry_File=split(bufStr,vblf)后面的参数 vblf 可以更换成任何东西,如果想按 vbcr ,就写vbcr;