FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
TSTringList en un Array of record ??????
Si tienen tiempo, tengo una consulta sobre la estrategia de un programa y no sobre dudas concretas sobre componentes o funciones delphi. Me resulta un poco complejo de explicarlo con el caso específico (más o menos sería calcular la probabilidad que el resultado de un ensayo genérico (físico o químico) sea correcto).
El asunto técnico es medio complejo así que voy a tratar de utilizar un simil más entendible, con la esperanza de que les de más ganas de hincarle el diente a este asunto a) Imaginen que tengo un tipo record con un monton de datos de diferentes tipos a su vez. xej: "engranajes", que van a tener diferentes atributos: Nombre, medida, altura de dientes, separacion, espesor, etc. b) Luego tengo una variable (array dinámico) que contiene un set de elementos del tipo record que mencioné antes. Esto sería el array "máquina" ya que por cada máquina habría varios engranajes diferentes en características y en cantidad De esta forma, teniendo una máquina, agrego los datos de todos (y cada uno de) los "engranajes" en el array. Esto permite realizar una función adicional en la aplicación, de forma que recibiendo como parámetro de entrada este array como una caja negra y haciendo muchas cuentas, arroje un resultado... p.ej...... el precio de la máquina. Si todavía no se durmieron, acá viene lo complejo. Imaginen que uno de los parámetros del tipo record del inicio es "oxidación de dientes" para lo cual tendría que poner los numeros de cada diente y después hacer un promedio. Si todos los engranajes tuvieran la misma cantidad de dientes podría poner un parámetro de tipo array con la cantidad de dientes, pero como todos los engranajes tienen distinta cantidad de dientes no se si se pueden usar arrays dinámicos en un Record (en realidad no estoy seguro tampoco que se puedan utilizar tipo array estáticos ) La otra idea que tuve fue ponerle unTStringList y tomar los valores como strings (despues me ocupo de convertir los numeros y hacer los cálculos) En este caso la duda son dos: *) Se puede poner un TStringList dentro de un Record? **) SI se puede, debo crear uno con TStringList.create cada vez que agrego un elemento en el array? Se escuchan ideas aunque realmente no tengo muchas esperanzas de haberme explicado lo suficientemente bien para saber qué cuernos estoy hablando. Gracias |
#2
|
||||
|
||||
Inicio por comentar que me parece curioso que hayas puesto el tema en el foro de OOP, cuando no estas dando una solución orientada a objetos al asunto.
En objetos, podrías tener un tipo TEngranaje, que a su vez tuviera una colección (TCollection) de TDientes. ¿para eso son las colecciones no? Sobre el tema que tratas, te aclaro que que dentro de un registro, se puede poner tanto un TStringList como un arreglo dinámico. En ambos casos, lo que realmente residirá en el registro es un puntero a la dirección de memoria donde estará realmente los datos (4 bytes), por lo que las reglas de los registros siguen siendo válidas. Te comento que esto mismo ocurre cuando incluis un string dentro del registro (a menos que sea un string del estilo pascal y no uno de los "nuevos" de delphi 3 o superior). Entendiendo este punto, verás que si usas un TStringList (o cualquier campo de un registro que sea un objeto) cada vez que creas un nuevo registro, será tu responsabilidad manejar este puntero. Es decir, al crear el registro, podes hacer que apunte a nil, o crear una nueva instancia de la clase correspondiente y almacenarla allí. Esto compila perfectamente en delphi 7:
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
||||
|
||||
Cita:
// Saludos |
#4
|
|||
|
|||
Así es... en mi caso, cuando los datos son meramente dinámicos, uso un TList o lo que aplique, si los datos son parte de un componente y necesito persistencia, entonces si uso TCollection...
Saludos... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
tstringlist y nulos | edgusano | Varios | 4 | 17-11-2005 22:06:54 |
Como Asignar Variable Tipo Array de Tform a otro Array del Mismo tipo | morfeo21 | Varios | 5 | 17-08-2004 17:39:51 |
TObjectList y TStringList | esquerda21 | Varios | 6 | 21-01-2004 15:16:58 |
TStringList en TObjectList | esquerda21 | Varios | 1 | 20-01-2004 09:38:41 |
TStringList | esquerda21 | Varios | 10 | 19-01-2004 11:15:21 |
|