Fragmentar/Paginar Resultado
Resulta que yo tengo un List con X cantidad de items. Estos, pueden oscilar desde 1 a 1000. Lo que yo quiciera hacer, es fragmentar o paginar estos items, por ejemplo, agruparlo cada 10 o 20 items.
Por ejempo, si el List.Count=100, entonces, quiciera agruparlo en 5 grupos de 20. Y asi, con cualquier valor de List.Count, una suerte de funcion, asi: Código:
function Paginar(ListCount:integer;Pagina:Integer):integer; -20 -20 -20 -5 No se si se entiende lo que quiero hacer, pero no se me ocurre como. Alguna sugerencia o idea??? Saludos |
Entiendo muy bien lo que quieres, pero no me queda clara una cosa ¿A donde quieres enviar cada grupito?
|
Cita:
Saludos |
Al igual que jhonny... me estaba preguntando... ¿cual es el objetivo de agrupar los elementos?
Yo estaba pensando en mantener el grupo en el mismo List. El truco consistiría en ordenarlos por grupo: elem1g1 elem2g1 ... elemNg1 - fin grupo 1 elem1g2 elem2g2 ... elemNg2 - fin grupo 2 De modo que lo que hay que recordar es la cantidad de grupos. Y no estar almacenando cada grupo por separado. La idea es para recorrer cada grupo se haga algo como (si quisieramos buscar los elementos del primer grupo. Siendo K la cantidad de grupos): Código:
for i := 1 to ((List.Count -1) div K) do Código:
.... |
Lo que se me ocurrio es hacer lo siguiente:
Y si por ejemplo el List.Count=100 me funciona, pero no se me ocurre, como hacer cuando List.Count=105, tengo que resolver eso. Lo de los grupos lo habia pensado, pero tengo tan ordenado el tema de la lista que me da miedo cambiar el codigo. Saludos |
Mamu, hace tiempo tuve que manejar algo parecido a lo que tu buscas. Tenía que implementar el test Chi-Cuadrado que lo que hace es armar grupos (series) de elementos de una lista de números y con ellos calcula unos estadísticos.
Al algoritmo lo implementé con arrays dinámicos. Y me olvidaba de la creación de TList. Si estas interesado, te lo puedo enviar para que lo estudies. Yo lo que hice fue aplicar el artilugio que te comentaba anteriormente. Saludos, |
Cita:
|
SOLUCIONADO
Implemente esto como prueba y funciona perfecto, tal cual lo necesitaba. Luego lo voy a adaptar a una funcion.
Delphius es interesante el dato, y desde ya cuando quieras compartirlo, bienvenido sea. Saludos y Gracias a todos. |
La franja horaria es GMT +2. Ahora son las 08:37:23. |
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