PDA

Ver la Versión Completa : Arreglo de Registros, con arreglos de Registros(Dinamico)


PiornoCKA&G
31-12-2006, 20:05:30
Necesito saber la forma más optimizada de crear dinamicamente arreglos de registros, con arreglos de registros dentro. He podido satisfacer mis espectativas mediante un código, pero al añadir otro arreglo de registros dentro se destruye por completo el programa.

Este es el ejemplo del código que he implementado

type
Ejemp = record
N1,N2,N3 : Integer;
end;

MyEjemp = record
Numbers : array of Ejemp;
Numbers2 : array of Ejemp;
end;
Var
AllData : array of MyEjemp;

Y al querer añadir un elemento hago esto:
...
SetLength(AllData,Length(AllData)+1);
SetLength(AllData.Numbers,Length(AllData.Numbers)+1);


Pero se me porta inestable,
Iré por buen camino, o existe un método mejor?
:cool:

Lepe
01-01-2007, 13:51:08
Yo aconsejo el uso de TObjectList (busca en el foro). Incluso si fuera necesario, se pueden encadenar los TObjectList, unos dentro de otros, esto sin duda, aclara mucho el código y te permite trabajar más cómodamente.

Quizás sabiendo para qué sirven todos esos arrays y los números n1,n2,n3 podamos aconsejarte una forma de hacerlo.

Saludos

Crandel
02-01-2007, 01:04:30
La forma en que manejas los arrays esta bien, a que te referis con "inestable".

Muy posiblemente te resulte complicado mantener la estructura no regular que se te puede formar con tantos arrays de diferente tamaño.

Cual es exactamente el problema que estas teniendo?

PiornoCKA&G
05-01-2007, 06:49:17
La forma en que manejas los arrays esta bien, a que te referis con "inestable".

Muy posiblemente te resulte complicado mantener la estructura no regular que se te puede formar con tantos arrays de diferente tamaño.

Cual es exactamente el problema que estas teniendo?

Mi Problema es a la ahora de "declarar" un nuevo array de regitros, pues lo datos de los otros arreglos se afectan, y me preocupa si eso es error del compilador o error de código. Ya he revisado meticulosamente todo el codigo y no hay error en él, y trabaja muy bien, pero se afecta al declarar otro arreglo de registros.

Lepe
05-01-2007, 08:53:30
En lugar de usar Length para cambiar el tamaño, usa High(Alldata) +1

Saludos