![]() |
problema con un array de tipos
Hola tengo una laguna mental y me he bloqueado en algo como esto:
me creo un tipo 'Tfichero': Código:
type TFichero = record Código:
Ficheros: Array of TFichero Código:
Ficheros[0].Nombre:='Pepe.txt' Gracias |
utiliza:
Código:
setlength(ficheros, numeroelementos) |
muxas gracias pero, algo mas...
1- No se los ficheros que voy ha almacenar aunque bueno eso no es muy importante...pero como puedo saber el limite de memoria que puedo reservar...de momento el limite en mi equipo es alrededor de 70millones pero si lo llevo a otro equipo con menos Ram me dará error...
2- Ese SetLength, luego no tendre que liberarlo de algun modo o simplemente cuando cierre la aplicacion se libera??? 3- Como puedo implementar un Count o algo parecido como por ejemplo el Lines.Count para saber cuantos elementos tengo rellenados como se definen metodos y funciones ??? Código:
type TFichero = record |
Cita:
Cita:
Si no lo haces, la liberación de memoria será automática al cerrarse el programa. Cita:
Cita:
En todo caso, te recomiendo la lectura de algún libro o tutorial de introducción a la Programación Orientada a Objetos en Delphi. Hasta luego. ;) |
Un detalle importante, es el de saber cuantos elementos ir almacenando.
Es cierto que puedes ir reservando espacio a demanda haciendo:
Pero el gran problema surge cuando el número comienza a crecer, dado que comienza a comsumir mayor cantidad de tiempo, debido a la reorganización en memoria del arreglo. Para solucionarlo, sabiendo que vas a necesitar muchos elementos, pides muchos mas:
10000 es sólo un ejemplo. Si necesitas más vas agregando de a 10.000, una ves completado vuelves a redimensionar, para eliminar los sobrantes
Recuerdo que esto sólo es necesario, cuendo se requieren procesos rápidos, por ejemplo de agregar más de 1000 datos por segundo, sino el tiempo consumido no es tan importante. |
Gracias por vuestra ayuda
Esto marcha de lujo....muxas gracias...y exare un vistazo a algun libro de orientacion a objetos ya que lo tengo bastante olvidado.
|
La franja horaria es GMT +2. Ahora son las 06:21:15. |
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