Login | Register   
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: VB7
Expertise: Intermediate
Dec 15, 2003

CSV2DataTable - Importing the data contained in a CSV file into a new DataTable

' Import the data contained in a CSV file into a new DataTable. By default the 
' values are Tab delimited, but you can use the second overload version to use 
' any other string you want.
'
' Example:
'    Dim table As DataTable = CSV2DataTable("D:\Users.txt")
'    DataGrid1.DataSource = table

Function CSV2DataTable(ByVal filename As String) As DataTable
    Return CSV2DataTable(filename, vbTab)
End Function
Function CSV2DataTable(ByVal filename As String, ByVal sepChar As String) As _
    DataTable
    Dim reader As System.IO.StreamReader
    Dim table As New DataTable
    Dim colAdded As Boolean = False

    Try
        ' open a reader for the input file, and read line by line
        reader = New System.IO.StreamReader(filename)
        Do While reader.Peek() >= 0
            ' read a line and split it into tokens, divided by the specified 
            ' separators
            Dim tokens As String() = System.Text.RegularExpressions.Regex.Split _
                (reader.ReadLine(), sepChar)
            ' add the columns if this is the first line
            If Not colAdded Then
                For Each token As String In tokens
                    table.Columns.Add(token)
                Next
                colAdded = True
            Else
                ' create a new empty row
                Dim row As DataRow = table.NewRow()
                ' fill the new row with the token extracted from the current 
                ' line
                For i As Integer = 0 To table.Columns.Count - 1
                    row(i) = tokens(i)
                Next
                ' add the row to the DataTable
                table.Rows.Add(row)
            End If
        Loop

        Return table
    Finally
        If Not reader Is Nothing Then reader.Close()
    End Try
End Function
Marco Bellinaso
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap