![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Aunque se pudiese realizar una asignacion directa, seria algo ineficiente porque el programa tendria igualmente que copiar los datos de una variable a otra .
La ventaja de usar directamente los datos de los arrays es que es muy rapido no se necesita nunca copiar esos arrrays de un lado a otro ya estan en memoria en su sitio una vez cargado el ejecutable. Si necesitas la maxima eficiencia, tendrias que trabajar con punteros, aunque se puede ocultar la complejidad de usar punteros definiendo y utilizando una clase que facilite el acceso a los datos. Todo depende de si esos arrays cambian el numero de columnas y/o filas. Si esos arrays tienen el mismo numero de columnas y filas, lo mas rapido y eficiente es usar un puntero a un array para devolver los datos, ejemplo:
Si los arrays tienen numero de filas variables, el problema es que en un array estatico no se sabe a posteriori cuantas filas tiene asi que o se usa alguna otra constate que nos lo diga (usando un tipo record por ejemplo que almacena tanto el array como el numero de filas) o se crea una ultima fila "en blanco" con algun valor numerico que nunca pueda salir en los datos reales y que marque el final.
Si el numero de filas y columnas varía luego es un pelin mas complejo, si realmente necesitas un sistema con todo variable (filas y columnas) , indicalo e intentare poner un ejemplo. Saludos Última edición por Mick fecha: 10-10-2007 a las 13:04:34. |
|
#2
|
|||
|
|||
|
El funcionamiento del programa es el siguiente.
En un archivo prg tenemos las tablas de datos, esta tablas está agrupadas en funciones en base al tipo de datos que proporcionan. De esta forma en este archivo nos encontramos con funciones similares a:
Dentro de cada función los array tienen el mismo número de columnas, pero el número de filas varía. Entre los arrays devuelto por diferentes funciones varía también el número de columnas. El array devuelto por esta funciones es recuperado en una función similar a:
Por último una función de intrepolación trata los datos obtenidos:
Cita:
![]()
__________________
Sonríe. Mañana puede ser peor. |
|
#3
|
||||
|
||||
|
Yo creo que nos estamos mareando demasiado. Hay tantas opciones que nos perdemos, para mí la solución más limpia sería:
La rutina establece dinamicamente las columnas y las filas del array y devuelve los datos; cuando dicha variable pierda su visibilidad, delphi liberará la memoria del array, punto y final. Nos quitamos de encima los siguientes puntos: - el nombre de las funciones que tanto nos marea. - los punteros que se arrastrarían por todo el programa. - Tener en memoria todos los arrays cargados. No estamos hablando de arrays con 1.000.000 de datos, son unos 100 o 200 que se leerán de un solo golpe del disco duro, y el tiempo en hacerlo no se notará. Los archivos se guardarían en binario, para guardarse directamente como números floats (nos ahorramos leer como texto y convertir cada uno a número). La migración requiere un paso más, pero el resultado creo lo merece. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#4
|
||||
|
||||
|
Para muestra un boton:
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#5
|
|||
|
|||
|
Una forma de hacerlo con un minimo uso de memoria y rapido acceso a los datos.
Como usar la unit:
Saludos Última edición por Mick fecha: 11-10-2007 a las 14:13:57. |
|
#6
|
||||
|
||||
|
¡¡ Que derroche de ingenio Mick!!
![]() ![]() Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#7
|
|||
|
|||
|
En primer lugar agradeceros vuestras respuesta.
Debido principalmente a las peculiares características de los usuarios finales de la aplicación -son unos increíbles ingenieros de I+D- voy a emplear el método expuesto por Mick. Emplear ficheros de datos exigiría entre otras cosas verificar que no han sido modificados por los citados "ingenieros" antes de proceder a su lectura. Un saludo. Juan P.
__________________
Sonríe. Mañana puede ser peor. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| arrays dinamicos | Chompiras | Varios | 8 | 14-07-2015 23:49:51 |
| Arrays dinamicos | Besto | Varios | 4 | 13-10-2006 16:24:01 |
| Arrays dinámicos en memoria | eliash | OOP | 5 | 01-02-2006 12:03:26 |
| Arrays dinámicos con Delphi.NET | mamen | .NET | 0 | 25-11-2004 15:21:35 |
| Arrays Dinamicos | mauro | Varios | 4 | 05-07-2003 22:14:29 |
|