hallo habe etwa 200o listview zeilen
so sieht es in etwa aus
würde vgerne wenn in spalte 2 folgedes ist die ganze zeile löschen
kann mir jemadn helfen?
hallo habe etwa 200o listview zeilen
so sieht es in etwa aus
würde vgerne wenn in spalte 2 folgedes ist die ganze zeile löschen
kann mir jemadn helfen?
Was du suchst ist:
_GUICtrlListView_GetItemCount
_GUICtrlListView_GetItemText
_GUICtrlListView_DeleteItem
Damit eine for Schleife basteln, die von 0 bis itemcount geht, dann jeweils den text auslesen und gucken, obs das ist, was du suchst. wenn ja, zeile löschen.
Für die Performance ist es wichtig vor der Schleife
_GUICtrlListView_BeginUpdate
und danach
_GUICtrlListView_EndUpdate
zu schreiben. Dann wird die Listview nicht bei jedem löschen neugezeichnet,... -> schneller und die Änderung tritt auf einmal auf und es verschwindet nicht Zeile für Zeile.
Das sollte reichen, für das was du vorhast ![]()
Damit eine for Schleife basteln, die von 0 bis itemcount geht
Damit sägst du den Ast ab, auf dem du sitzt
Du mußt das Listview vom letzten Eintrag zum ersten iterieren (Itemcount-1 to 0 step -1). Anderenfalls stimmen die Indexwerte nach Löschen eines Eintrages nicht mehr.
Naja. Wenn man den Index passend verkleinert geht das ![]()
Von hinten nach vorne ist zwar klüger, umsetzten tu ich aber meist die Methode mit dem verkleinern des Indexes^^
Wenn es auf Geschwindigkeit ankommt, ist es eh besser (vor der Anzeige im Listview) das Daten-Array durchzugehen und dort die entsprechenden Einträge zu löschen.
Oder (noch besser, weil dann auch noch weniger Speicher verbraucht wird) bereits beim erstellen des Daten-Arrays (auslesen der Verzeichnisse) eine entsprechende Filterung vorzunehmen.