MichaK Geschrieben 13. Mai 2003 Teilen Geschrieben 13. Mai 2003 Hallo zusamme, ich habe ein ZEIT Problem beim befüllen eines Listview elements mit werten aus einer Textdatei in Visual Basic. Der Code zum Einlesen der Datei: Open ItemFile For Binary As #FF inhalt = Space$(LOF(FF)) Get #FF, , inhalt Close #FF Zeilen = Split(inhalt, vbCrLf) Danach verwende ich eine For Schleife zum lesen der einzelnen Werte in "Zeilen". Bei jedem Schleifendurchlauf wird dem Listview element ein eintrag hinzugefügt. Der Code Funzt prima aber nur bis ca. 3000 Zeilen in der Textdatei (ca. 3sekunden). Das Problem ist das die Textdatei zwischen 30'000 und 100'000 Einträge hat. Kennt jemand einen Schnellen Algo. zum befüllen eines Listview elements. Ich füge jede zeile einzeln mit .add "bla....." hinzu. Vieleicht gibt es ja die Möglichkeit dem Listview element ein array zuzuweisen. Hilfe Michael Klaus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gast Geschrieben 13. Mai 2003 Teilen Geschrieben 13. Mai 2003 Wenn es Dir nur um die Anzeige geht verwende doch eine RichTextBox. Die Datei kannst Du dann mit rtbAnzeige.Loadfile(strDateiname) laden. Ich weiss, es ist keine möglichkeit eine ListView schnell zu füllen, aber wenn es nur um die Anzeige geht, dann wäre es einen Gedanken wert, oder? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
-roTekuGeL- Geschrieben 14. Mai 2003 Teilen Geschrieben 14. Mai 2003 Was hältst du davon das ListView im Load der Form zu füllen? Denn ich glaube das ein wesentlicher Teil der Zeit des befüllens dafür draufgeht, das der ListView immerwieder Refreshed wird. Oder versuch das ListView einfach unsichtbar zu machen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MichaK Geschrieben 14. Mai 2003 Autor Teilen Geschrieben 14. Mai 2003 - Das Listview wird schon vor dem Befüllen unsichtbar gemacht (bringt richtige zeitersparnis) - das befüllen dauert trotzdem zu lange Beispiel: 03000 Einträge => ca. 3 sekunden 10000 Einträge = ca. 35 sekunden Ich habe schon bei anderen Programmen gesehen das 70'000 Einträge in ein Listview element geladen wurden ohne das man warten musste Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
-roTekuGeL- Geschrieben 14. Mai 2003 Teilen Geschrieben 14. Mai 2003 Original geschrieben von MichaK Ich habe schon bei anderen Programmen gesehen das 70'000 Einträge in ein Listview element geladen wurden ohne das man warten musste was für andere Programme? und kannst du an den Code dieser Programme kommen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
g_nikolai Geschrieben 14. Mai 2003 Teilen Geschrieben 14. Mai 2003 versuch es doch einfach zu umgehen alle daten auf einmal einlesen zu vollen. Man kann es ja auch so Proggen das erstmal die 1. 1000 datensätze eingelesen werden und beim scrollen dann nach un nach die nächsten ohne das der User etwas davon merkt. Guido Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MichaK Geschrieben 14. Mai 2003 Autor Teilen Geschrieben 14. Mai 2003 was für andere Programme? und kannst du an den Code dieser Programme kommen? Es war ein Handwerksprogramm, das Fenster war mit min. 70000 Artikeln gefüllt. Wenn ich an den Code kommen könnte, müsste ich keine Forum anfrage stellen. Man kann es ja auch so Proggen das erstmal die 1. 1000 datensätze eingelesen werden und beim scrollen dann nach un nach die nächsten ohne das der User etwas davon merkt. Diese Möglichkeit habe ich schonmal Probiert das Problem ist, das nach dem öffnen der Liste, der Benutzer etwas auswählen kann. Dazu schreibt er den ersten Buchstaben. Das Programm sollte dann an diese Position in der Liste springen Wenn ich diesen Buchstabenbereich noch nicht geladen habe wird nix angezeigt und der Benutze denkt das dieser Eintrag nicht vorhanden ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
-roTekuGeL- Geschrieben 14. Mai 2003 Teilen Geschrieben 14. Mai 2003 mh... und hast du schon versucht das ganze im Form_Load zu füllen? Ich kann mich schwach daran erinnern, das mir das bei einem ähnlichen Prog n haufen Zeit gespart hat... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
g_nikolai Geschrieben 14. Mai 2003 Teilen Geschrieben 14. Mai 2003 selbst für diese möglichkeit der direkten eingabe eines oder mehrer Buchstaben für den anfang eines Eintrags ist es möglich die Methode so zu schreiben das dann halt nur diese Einträge eingelesen werden. Guido Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MichaK Geschrieben 15. Mai 2003 Autor Teilen Geschrieben 15. Mai 2003 ich teste gerade nochmal das befüllen ..... hat jemand eine idee wie man das scrollereignis eines Listview elements abfängt? MfG MichaK Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.