首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

如何快速得到csv文件的行数

2013-04-09 
怎么快速得到csv文件的行数?Open SystemSet.PlaneXL.Text For Input As #1Line Input #1, strFileSystemSe

怎么快速得到csv文件的行数?

Open SystemSet.PlaneXL.Text For Input As #1
    Line Input #1, strFile
    SystemSet.Progress.Min = 0
    SystemSet.Progress.Max = UBound(Split(Input$(LOF(1), 1), vbCrLf))


因为后面还要实际需要的循环,在不循环的情况下想得到这个文件的行数做为进展条的显示,在网上看到这么一个语句说可以得到它的行数,但是提示实时错误62,输入超出文件尾。 csv 行数
[解决办法]
还有一种方法,读整个文件到一个字符串,测试去除换行符前后的长度差,得到行数。


Private Sub Command1_Click()
Dim bytFile() As Byte, strFile As String, strTmp As String
Dim n As Long

Open "D:\Program Files\Microsoft Visual Studio\VC98\Lib\WIN32API.CSV" For Binary As #1
ReDim bytFile(LOF(1) - 1)
Get #1, , bytFile
Close #1

strFile = StrConv(bytFile, vbUnicode)

strTmp = Replace(strFile, vbCrLf, "")

n = (LenB(strFile) - LenB(strTmp)) / 2 + 1
MsgBox n
End Sub

[解决办法]
2种方法:

第1种:
Option Explicit

Private Sub Command1_Click()
    Dim FileNumber As Long, Filebyte() As Byte, Arr() As String
    
    FileNumber = FreeFile
    Open "D:\GreenSoft\easyMule\config\ip-to-country.csv" For Binary As #FileNumber   '打开CSV文件
    ReDim Filebyte(1 To LOF(FileNumber))
    Get #FileNumber, , Filebyte
    Arr = Split(StrConv(Filebyte, vbUnicode), vbCrLf)
    Debug.Print UBound(Arr) '取得数据行数
    Close #FileNumber
    
End Sub



第2种:  这种用Excel方法打开,行数不能超过65536行,否则用第1种.
'引用对象库:Microsoft Excel 11.0 Object Library
Option Explicit

Private Sub Command1_Click()
        
        On Error GoTo Errhandler
        
        Dim xlExcel As New Excel.Application
        Dim xlBook As Excel.Workbook
        Dim xlSheet As Excel.Worksheet
        
        xlExcel.Application.Visible = False
        xlExcel.Workbooks.Open "D:\GreenSoft\easyMule\config\ip-to-country.csv" '打开CSV文件
        xlExcel.Workbooks(1).Activate
        Set xlSheet = xlExcel.Workbooks(1).Worksheets(1) 'Sheet1表
        xlSheet.Activate '激活Sheet1表
        Debug.Print xlExcel.ActiveSheet.UsedRange.Rows.Count '取有效数据行数
        
        xlBook.Close


        xlExcel.Quit
        Set xlSheet = Nothing
        Set xlBook = Nothing
        Set xlExcel = Nothing
        
Errhandler:
        Exit Sub
End Sub

热点排行