Grosse Textdatei in Datatable Verfasst am: 28.09.2009, 18:03
Hallo zusammen,
ich bin neu hier da ich vor einem Problem stehe mit dem ich mich nun schon seit Tagen durch Inet kämpfe.
Ich möchte mehrere große Textdateien in ein Datatable schreiben und dann an den Daten diverse Berechnungen durchführen.
Im moment bin ich noch dabei eine einzige Textdatei einzulesen. Ich gehe dabei aber immernoch über ein normales array.
Die Textdateien sehen folgendermassen aus:
Kundennummer;Kundenname;Seriennummer;Username;Datum;Uhrzeit;Zugriffsdauer;Status;Fehler;Fehler2
in soeiner Textdatei welche eine Logdatei darstellt können an die 100000 Datensätze vorhanden sein.
Mein Programm sieht im moment folgendermassen aus:
Sub daten()
Dim i As Integer
Dim j As Integer = 0
Dim Table1 As DataTable
Table1 = New DataTable("datenbank")
Dim NewRow As DataRow
Try
Dim Kundennummer As DataColumn = New DataColumn("Kundennummer")
Kundennummer.DataType = System.Type.GetType("System.String")
Table1.Columns.Add(Kundennummer)
Dim Kundenname As DataColumn = New DataColumn("Kundenname")
Kundenname.DataType = System.Type.GetType("System.String")
Table1.Columns.Add(Kundenname)
Dim Seriennummer As DataColumn = New DataColumn("Seriennummer")
Seriennummer.DataType = System.Type.GetType("System.String")
Table1.Columns.Add(Seriennummer)
Dim Username As DataColumn = New DataColumn("Username")
Username.DataType = System.Type.GetType("System.String")
Table1.Columns.Add(Username)
Dim Datum As DataColumn = New DataColumn("Datum")
Datum.DataType = System.Type.GetType("System.String")
Table1.Columns.Add(Datum)
Dim Uhrzeit As DataColumn = New DataColumn("Uhrzeit")
Uhrzeit.DataType = System.Type.GetType("System.String")
Table1.Columns.Add(Uhrzeit)
Dim Zugriffsdauer As DataColumn = New DataColumn("zugriffsdauer")
Zugriffsdauer.DataType = System.Type.GetType("System.String")
Table1.Columns.Add(Zugriffsdauer)
Dim Status As DataColumn = New DataColumn("Status")
Status.DataType = System.Type.GetType("System.String")
Table1.Columns.Add(Status)
Dim Fehler As DataColumn = New DataColumn("Fehler")
Fehler.DataType = System.Type.GetType("System.String")
Table1.Columns.Add(Fehler)
Dim Fehler2 As DataColumn = New DataColumn("Fehler2")
Fehler2.DataType = System.Type.GetType("System.String")
Table1.Columns.Add(Fehler2)
Dim daten()
Dim merkerarray()
daten = File.ReadAllLines("C:\daten.txt")
i = 0
Do While i < UBound(daten) ' dataarray(i) <> ""
merkerarray = Split(daten(i), ";")
'Globale nicht kopieren bedingungen
If UBound(merkerarray) < 7 Then GoTo weiter
NewRow = Table1.NewRow
NewRow.Item("Kundennummer") = merkerarray(0)
NewRow.Item("Kundenname") = merkerarray(1)
NewRow.Item("Seriennummer") = merkerarray(2)
NewRow.Item("Username") = merkerarray(3)
NewRow.Item("Datum") = merkerarray(4)
NewRow.Item("Uhrzeit") = merkerarray(5)
NewRow.Item("Zugriffsdauer") = merkerarray(6)
NewRow.Item("Status") = merkerarray(7)
If UBound(merkerarray) > 7 Then
NewRow.Item("Fehler") = merkerarray(
merkerarray( = ""
End If
If UBound(merkerarray) > 8 Then
NewRow.Item("Fehler2") = merkerarray(9)
merkerarray(9) = ""
End If
Table1.Rows.Add(NewRow)
j = j + 1
weiter:
i = i + 1
Loop
Catch ex As Exception
MsgBox(ex.Message)
End Try
Dim ds As New DataSet()
ds = New DataSet()
ds.Tables.Add(Table1)
FormHauptbildschirm.DataGrid1.SetDataBinding(ds, "datenbank")
End Sub
Nun meine Frage:
kann ich die Daten auch direkt in das Datatable einlesen ohne den umweg über das array?
Wenn die Daten in der Textdatei sich sekündlich ändern, wie bekomme ich sie "live" in das Datatable?