vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
XML Datei einlesen - 5000 Datensätze 
Autor: Milan
Datum: 07.08.09 18:10

Beim einlesen einer XML-Datei oder auch CSV-Datei in Visual Basic 2008 (Windows Mobile 5) habe ich leichte Geschwindigkeitsproblme. Ich versuche eine XML Datei mit ca. 5000 Vokabeln einzulesen. Das dauert aber auf meinem HTC Touch ca. 3 Minuten.

datasetVocab.Tables(0).Clear()
datasetVocab.ReadXml(appPath() & file)
tableVocab.DefaultView.Sort = "German ASC"
DataGrid1.DataSource = datasetVocab.Tables(0)
Wenn ich die Daten aus einer CSV- oder Text-Datei wie folgt importieren, dann dauert das auch ca. 3 Minuten. Also genauso lange.

Dim data As String
Dim vocI As String
Dim vocG As String
Dim z As Integer
 
sReader = New StreamReader(appPath() & "\import.csv", _
  System.Text.Encoding.Default)
 
Do Until sReader.Peek = -1
    data = sReader.ReadLine
    For z = 1 To Len(data)
        If Mid(data, z, 1) = ";" Then
            vocG = Mid(data, 1, z - 1)
            vocI = Mid(data, z + 1, Len(data))
            rowVocab = datasetVocab.Tables(0).NewRow()
            rowVocab("ID") = rowCount
            rowVocab("German") = vocG
            rowVocab("Italian") = vocI
            rowVocab("Date") = Date.Now
            rowVocab("Visible") = 1
            tableVocab.Rows.Add(rowVocab)
            rowCount = rowCount + 1
            Exit For
        End If
    Next
Loop
sReader.Close()
Gibt es eine Möglichkeit das auf eine schnellere Art hinzubekommen?
Das filtern der Datensätze dauert auch 5-10 Sekunden, da muss es doch was schnelleres auch für Mobile Geräte geben, oder?

So filtere/durchsuche ich die Datensätze.

Dim key As String
key = txtListSearch.Text
 
datasetVocab.Tables(1).Clear()
rowCount = 1
 
Dim found() As System.Data.DataRow = tableVocab.Select("German like '%" & key & _
  "%'")
 
For i As Integer = 0 To found.GetUpperBound(0)
    ListBox1.Items.Add(found(i).Item("German") & " / " & found(i).Item( _
      "Italian"))
 
    rowVocab = datasetVocab.Tables(1).NewRow()
    rowVocab("ID") = rowCount
    rowVocab("German") = found(i).Item("German")
    rowVocab("Italian") = found(i).Item("Italian")
    rowVocab("Date") = Date.Now
    rowVocab("Visible") = 1
    tableVocabSearch.Rows.Add(rowVocab)
    DataGrid2.DataSource = tableVocabSearch
    rowCount = rowCount + 1
 
Next i
 
tableVocabSearch.DefaultView.Sort = "German ASC"
DataGrid2.DataSource = tableVocabSearch
Wenn jemand eine Tipp für mich hat, dann wäre ich sehr dankbar.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
XML Datei einlesen - 5000 Datensätze1.660Milan07.08.09 18:10
Re: XML Datei einlesen - 5000 Datensätze1.137ModeratorFZelle07.08.09 20:20
Re: XML Datei einlesen - 5000 Datensätze1.156Milan07.08.09 21:39
Re: XML Datei einlesen - 5000 Datensätze1.134ModeratorFZelle07.08.09 22:43
Re: XML Datei einlesen - 5000 Datensätze1.171Milan08.08.09 23:09
Re: XML Datei einlesen - 5000 Datensätze1.073ModeratorFZelle09.08.09 12:36

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel