Hallo,
ich möchte eine ziemlich grosse Textdatei (> 400.000 Zeilen) in einer Listbox darstellen. Die Datei ist (leider) nicht sortiert - da im Programm aber die Möglichkeit bestehen soll nach bestimmten Kriterien zu suchen bzw. zu filtern muss die Datei wohl komplett geladen sein (oder geht das auch anders?).
Auch kann (darf) ich die Datei nicht vorher sortieren, da sie, so wie sie uns geliefert wurde angezeigt werden soll.
So, nun habe ich schon diverse Dinge probiert um diese Datei in einer akzeptablen Zeit in der Listbox darzustellen:
Kann mir jemand einen Tipp geben, wie ich diese Textdatei in einer akzeptablen Zeit in einer ListBox anzeigen kann ?
Achso, ja, ich arbeite mit der Entwicklungsumgebung Visual Studio C# 2010 Express.
Vielen Dank für eure Hilfe.
Gruß, Karlo
ich möchte eine ziemlich grosse Textdatei (> 400.000 Zeilen) in einer Listbox darstellen. Die Datei ist (leider) nicht sortiert - da im Programm aber die Möglichkeit bestehen soll nach bestimmten Kriterien zu suchen bzw. zu filtern muss die Datei wohl komplett geladen sein (oder geht das auch anders?).
Auch kann (darf) ich die Datei nicht vorher sortieren, da sie, so wie sie uns geliefert wurde angezeigt werden soll.
So, nun habe ich schon diverse Dinge probiert um diese Datei in einer akzeptablen Zeit in der Listbox darzustellen:
- ich lese die Daten mittels Streamreader in eine Stringliste:
List<string> zeile = new List<string>(); --> das geht irre schnell (< 1 sek.)
- Nun übergebe ich die Daten der Stringlist in einer Schleife mit dem folgenden Befehl an die Listbox:
listBox1.Items.Add(zeile[i]); --> das dauert (> 5 min.)
- nächster Versuch: Die StringList an ein Array übergeben und dieses Array an die Listbox übergeben:
string[] z = zeile.ToArray();
listBox1.Items.AddRange(z); --> auch das dauert (> 5 min.)
listBox1.Items.AddRange(z); --> auch das dauert (> 5 min.)
Weitere Versuche waren noch einen eigenen Thread aus dem Einlese-Prozeß zu machen, was aber auch nicht zu einer schnelleren Verarbeitung geführt hat.
Ich habe auch schon überlegt, die Textdatei in eine Datenbank zu speichern und sie von dort aus mittels SQL auszulesen. Das ist nicht gewünscht, da dann auf den Zielsystemen auch der SQL-Server installiert sein müsste.Kann mir jemand einen Tipp geben, wie ich diese Textdatei in einer akzeptablen Zeit in einer ListBox anzeigen kann ?
Achso, ja, ich arbeite mit der Entwicklungsumgebung Visual Studio C# 2010 Express.
Vielen Dank für eure Hilfe.
Gruß, Karlo
Comment