Sub btnImport_Click
Dim i, j As Int
Dim FileDialog1 As FileDialog
ProgressDialogShow("This process can take several minutes. Please wait!")
FileDialog1.FilePath = File.DirRootExternal
If FileDialog1.Show("Choose csv file", "Ok", "Cancel", "", Null) = DialogResponse.POSITIVE Then
'set db
SQL1.Initialize(File.DirRootExternal, "test1.db", True)
SQL1.ExecNonQuery("DROP TABLE IF EXISTS table1")
SQL1.ExecNonQuery("CREATE TABLE table1 (col1 TEXT, col2 TEXT, col3 TEXT, col4 TEXT, col5 TEXT, col6 TEXT, col7 TEXT, col8 TEXT, col9 TEXT, col10 TEXT, col11 TEXT, col12 TEXT, col13 REAL, col14 REAL)")
SQL1.BeginTransaction
'read csv File
Dim Reader As TextReader
Reader.Initialize(File.OpenInput(FileDialog1.FilePath, FileDialog1.ChosenName))
Try
Dim line As String
Reader.ReadLine
'Don´t do any thing with this first line since it contains the title
line = Reader.ReadLine
Do While line <> Null
j = j + 1
line = Reader.ReadLine
'Check if line contains a Result or Non-Defined ->(#). If so, do nothing
If line.Contains("Result") OR line.Contains("#") Then
Else
Dim ColumnContent() As String
ColumnContent = Regex.Split(";", line)
For i = 0 To 13
ColumnContent(i) = ColumnContent(i).Replace(QUOTE, "")
'Column 12 contains the turnover figures
'Convert layout -> 12.345,67 EUR to useable layout -> 12345.67
If i = 12 Then
Try
ColumnContent(i) = ColumnContent(i).SubString2(0, ColumnContent(i).Length - 4) '-4 for EUR & Space
ColumnContent(i) = ColumnContent(i).Replace(".", "")
ColumnContent(i) = ColumnContent(i).Replace(",", ".")
Catch
Log(i & " " & j & " " & LastException.Message)
End Try
End If
'Column 13 contains the quantity figures
'Convert layout -> 1.234,5 KG to useable layout -> 1234.5
If i = 13 Then
Try
ColumnContent(i) = ColumnContent(i).SubString2(0, ColumnContent(i).Length - 2) '-3 for KG or PC and Space
ColumnContent(i) = ColumnContent(i).Replace(".", "")
ColumnContent(i) = ColumnContent(i).Replace(",", ".")
Catch
Log(i & " " & j & " " & LastException.Message)
End Try
End If
Next
SQL1.ExecNonQuery2("INSERT INTO table1 VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (ColumnContent(0), ColumnContent(1), ColumnContent(2), ColumnContent(3), ColumnContent(4), ColumnContent(5), ColumnContent(6), ColumnContent(7), ColumnContent(8), ColumnContent(9), ColumnContent(10), ColumnContent(11), ColumnContent(12), ColumnContent(13)))
DoEvents
End If
Loop
Catch
Log(LastException.Message)
End Try
Reader.Close
SQL1.TransactionSuccessful
SQL1.EndTransaction
ProgressDialogHide
Msgbox("csv file imported!", "Message")
Msgbox("Ready for use!", "Message")
Else
Return True
End If
End Sub