> 文档中心 > VB6.0 循环读取 CSV文件数据

VB6.0 循环读取 CSV文件数据

'读取CSV文件'假设传入的参数strFile=C:\Documents and Settings\Administrator\桌面\TPA_Report1 - 副本.CSVPublic Function Read_CSVFile(strFile As String) As ADODB.RecordsetOn Error GoTo ErrH    Dim rs As ADODB.Recordset    Set rs = New ADODB.Recordset    Dim conn As ADODB.Connection    Set conn = New ADODB.Connection    Dim strFilePath As String, strFileName As String    Dim i As Integer    i = Len(strFile)    Do Until Mid(strFile, i, 1) = "\" '从后向前查找倒数第一个"\" i = i - 1    Loop    strFilePath = Left(strFile, i - 1) '返回结果:C:\Documents and Settings\Administrator\桌面    strFileName = Mid(strFile, InStrRev(strFile, "\") + 1) '返回结果:TPA_Report1 - 副本.CSV    conn.ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=" & strFilePath    conn.Open "DRIVER={Microsoft Text Driver (*.txt; *.csv)};" & "DBQ=" & strFilePath & ";", "", ""    rs.Open "Select * From " & strFileName, conn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly    Set Read_CSVFile = rs    Set rs = Nothing    Set conn = Nothing    Exit FunctionErrH:   Set rs = Nothing    Set conn = Nothing    Set Read_CSVFile = NullEnd Function'------------------------------------------------------Private Sub ReadCsv()    Dim rsData As New ADODB.Recordset 'CSV中的所有的数据     Dim strNote As String  '取得CSV中所有的数据    Set rsData = Read_CSVFile(txtFileName.Text)    If rsData.RecordCount > 0 Then DoEvents Dim iTotal As Integer iTotal = 0  'CNAPS号 银行名称    地址 rsData.MoveFirst Do While Not rsData.EOF '循环数据集     'UploadLog     strNote = Val(Trim(rsData.Fields("CNAPS号"))) & "," & Trim(rsData.Fields("银行名称")) & "," & Trim(rsData.Fields("地址"))     Debug.Print strNote     iTotal = iTotal + 1     DoEvents     rsData.MoveNext Loop    End If    '释放资源,否则CSV打开会是只读状态    rsData.Close    Set rsData.ActiveConnection = Nothing    Set rsData = Nothing    Exit SubEnd Sub