更改功能以将制表符分隔文件读入数据表?

时间:2014-04-09 12:32:28

标签: vb.net datatable

我需要更改以下函数,以从制表符分隔文件中读取任何想法如何执行此操作?

Public Function ConvertCsvToDatatable(ByVal ColumnNames As Boolean) As DataTable
    Try
        Dim dt As New DataTable
        For Each columnName In getColumns(ColumnNames)
            dt.Columns.Add(columnName)
        Next
        Dim fileReader As New StreamReader(FileName)
        If ColumnNames Then
            fileReader.ReadLine()
        End If
        Dim line As String = fileReader.ReadLine
        While Not IsNothing(line)
            line = line.Replace(Chr(34), "")
            dt.Rows.Add(line.Split(","))
            line = fileReader.ReadLine
        End While
        fileReader.Close()
        Return dt
    Catch ex As Exception
        'log to file
    End Try
    Return Nothing
End Function

2 个答案:

答案 0 :(得分:2)

line.Split(",")更改为line.Split(vbTab)。这将允许您使用制表符作为分隔符而不是逗号。

答案 1 :(得分:2)

我可能会替换以下行:

dt.Rows.Add(line.Split(",")) 

使用:

dt.Rows.Add(line.Split(vbTab))

那应该在制表符分隔值上分开......

那就是说,我真的会推荐一个专门的库来做这件事,因为SCV / TSV可能相当复杂。我喜欢KBCsv