![]() |
Rellenar celdas al estilo excel (progresión aritmetica)
Hola.
El problema es el siguiente: trato de hacer lo mismo que se hace en excel al seleccionar dos celdas (en una misma columna y cada una con un valor numerico diferente ) luego hacemos clic en editar -> rellenar celdas y automáticamente las celdas intermedias se rellenan. Algo así como sacar una tendencia en base a dos valores que pueden ser positivos o negativos. Poniéndolo mas gráfico: 2 x1 x2 x3 10 pasa a ser 2 4 6 8 10 La idea es emular esto en un grid o similar, de hecho ya lo hace pero me gustaría saber si existe alguna forma mas elegante y/o rápida, pues lo que yo hice fue tomar los dos valores, determinar cual es mayor (para saber si sera un incremento o un decremento) sacar la diferencia de esos numeros y dividirla entre los espacios a rellenar y con eso obtengo el incremento/decremento que debo aplicar al momento de rellenar las celdas y ya solo basta recorrerlas con un for o while y asignarle el valor de la celda anterior + o - el valor del incremento o decremento. Supongo que hay algo mejor que lo que hago yo pues excel lo hace inmediato. :D Saludos. |
Pues el algoritmo parece correcto y eficiente
- buscar diferencia - buscar cantidad de celtas - dividir diferencia / cantidad de celtas - recorrer las celdas sumando esta división No se a que te refieres con que "Excel lo hace inmediato". Si lo que te falla es la velocidad, puede que estés trabajando con un componente lento o que estés haciendo las lecturas/escrituras directamente en el archivo de disco. Trata de trabajár en memoria con los datos. |
Hola, gracias por responder.
En efecto lo que busco es algo mas de velocidad (mas que nada como capricho pues la demora es en realidad poca) ya que trabajando con 2000 o mas datos si se nota una leve pausa en el programa y en excel no. Para las pruebas que he realizado lo implemente con los componentes Grid y DBGrid. Saludos. |
La franja horaria es GMT +2. Ahora son las 11:06:18. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi