Datei in Listenfeld einlesen



  • Hallo,

    ich will eine Textdatei in ein Listenfeld einlesen. Die Textdatei kann dabei mehrere 100 kByte bis ein Megabyte groß sein. Ist das überhaupt möglich, in ein Listenfeld soviele Daten aufzunehmen, und ist das nicht ineffektiv?
    Wäre es nicht besser nur immer soviele Daten einzulesen wie aktuell angezeigt werden und wenn die Scroll Bar betätigt wird, den nächsten Datenhappen? Wenn ja, wie mache ich dies?

    Gruß
    QWE



  • Du musst ja nicht alles sofort ins ListCtrl laden.
    Setzte pszText in LVITEM auf LPSTR_TEXTCALLBACK, dann füge nen message handler für LVN_GETDISPINFO (WM_NOTIFY) hinzu.
    Deu bekommst dann LVN_GETDISPINFO messages wenn window neue items anzeigen will und du kannst dann pszText füllen, dann musst du nicht das ganze file auf einmal ins Listenfeld stopfen.


  • Mod

    Ideal für solche Dinge ist ein ListCtrl mit dem Stil LVS_OWNERDATA. In disem Fal muss man nur mit SetItemCount(Ex) die Anzahl der Items angeben und man reagiert auf LVN_GETDISPINFO und liefert die entsprechendne Daten, die angezeigt werden.

    Dies ist mit Garantie das schnellste Verfahren.


Log in to reply