Cual es la forma mas rapida de recorrer un ListView
Si un listview tiene muchos nombres de ficheros y deseo saber si un fichero esta en la listview.
¿Existe alguna forma que sea muy rapida (aunque sea en asm) de recorrer el listview? o hay que usar el tipico for o while con Items.count-1. Como esta busqueda se va a repetir muchas veces... no se si sera lento. Un saludo |
Da igual que método uses, aunque exista un método a la fuerza va a recorrer uno a uno cada item del ListView, es de lógica.
Podrías hacer algo como eso, también se podría hacer comparando la segunda o tercera columna. También podrías usar la funcion Pos para hacer la comparación. Saludos. |
Hola, otra manera es usar la propiedad text, o commatext, de los items.
para saber el numero de linea en la que esta, ya seria basandose en la posicion devuelta por pos. saludos. |
Gracias...
En el listview almaceno nombre de archivo, path, tamaño y texto de información. Solo me interesa saber si el archivo se encuentra en el listview y comprobar por ejemplo si tiene el mismo tamaño o path. Un saludo... |
Si vas a tener muchos archivos, podrías tener un TStringlist ordenado alfabéticamente, de esta forma las búsquedas van a ser mucho más rápidas usando el típico stringlist1.indexof("miarchivo").
La ordenación del los TStringlist es un QuickSort, que viene de maravilla cuando son muchos elementos. en ese stringlist, puedes tener un puntero almacenado en la propiedad Objects, que haría referencia al TListViewItem en cuestion con el resto de datos. Estoy algo oxidado... pero más o menos:
|
Aunque conteste tarde....
Muchas gracias.... Me habeis aclarado mucho (no conocia la propiedad commatext). La verdad es que he aprendido cosas nuevas.. Un saludo |
La franja horaria es GMT +2. Ahora son las 16:53:42. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi