[Lazarus-es] estructura para guardar datos de dif tipo

German german_morre en yahoo.com.ar
Sab Ene 5 22:28:26 CET 2013


El 05/01/2013 05:07 p.m., Paola Bruccoleri escribió:
> Hola todos..
>
> necesito ir guardando en algún lugar ciertos datos para luego 
> procesarlos. Son los datos para imprimir X cant de comprobantes, q de 
> antemano no se cuántos comprobantes son son.
>
> Había pensado en definir un tipo record:
>
>   TComprobante = record
>     tipocomp: string;
>     fecha: TDate;
>     idpropietario : integer;
>     nombre : string;
>     direccion : string;
>     identificacion : string;
>     importe : double;
>     iva: double;
>     detalle: string;
>   end;
>
> y varias variables de ese tipo.
> retencion: TComprobante;
> ....
>
> Ahora.. puede ser que algunas variables no se inicialicen porque no 
> hay comprobante asociado.
>
> La forma que tengo de saber si la variable record es vacía es 
> preguntando por cq de los campos? o sea:
> if retencion.tipocomp <> ''
>    imprimir comprobante...
>
> ¿se les ocurre otra forma mejor de hacer esto?
>
> Si usara otro lenguaje (harbour x ej), definiría un array 
> multidimensional dinámico... en 1 renglón tengo todo pronto.. pero acá 
> veo que el array debe tener todos los elementos del mismo tipo, y no 
> es el caso.
>
> muchas gracias!
>
Hola
Aca podes hacer lo mismo, un array dinamico de registros, vas agregando 
registros uno a uno y luego solo recorres el array desde el primer hasta 
el ultimo elemento.

Por ejemplo, podrias definirias tu arraglo como: aComprobantes: array of 
TComprobante;
le das tamaño 0 al principio -> setlength(aComprobantes, 0);
y luego vas agregando elementos: setlength(aComprobantes, 
length(aComprobantes)+1);
y vas cargando datos - > aComprobantes[length(aComprobantes)-1].fecha := 
date();

luego para recorrer el array podes usar un for de 0 a length(aComprobante)-1

Espero se entienda mi explicacion.


Saludos!

>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20130105/498a0669/attachment-0002.html>


More information about the Lazarus-es mailing list