PDA

Ver la Versión Completa : ayuda con array


virtual
24-01-2004, 22:27:59
Hola amigos
Necesito crear un array de record
el record es el siguiente:

TdetalleRecibo = record
vrec_numero : integer;
vrec_tipo : string;
vcon_codigo : string;
vdet_valor : currency;
end;

Que debo hacer para crear un array de ese tipo y recorrerlo mediante un bucle(ciclo) para poder insetarle información.

marcoszorrilla
24-01-2004, 23:25:12
Hola amigos
Eso si es una manera de presentarse.

Aquí tienes un pequeño ejemplo.


procedure TForm1.Button1Click(Sender: TObject);
Type
TdetalleRecibo = record
vrec_numero : integer;
vrec_tipo : string;
vcon_codigo : string;
vdet_valor : currency;
end;
var
MisRecibos: array[1..10] of TdetalleRecibo;
nCont:Integer;
Cr_lf:String;
begin
Cr_lf:=Chr(10)+Chr(13);

for nCont:=1 to 10 do
begin
MisRecibos[nCont].vrec_numero:=nCont;
Misrecibos[nCont].vrec_tipo:='Ejemplo'+IntToStr(nCont);
MisRecibos[nCont].vcon_codigo:=IntToStr(ncont);
MisRecibos[nCont].vdet_valor:=nCont;
end;


for nCont:=1 to 10 do
begin
ShowMessage(IntToStr( MisRecibos[nCont].vrec_numero)+ Cr_lf
+ Misrecibos[nCont].vrec_tipo+Cr_lf
+MisRecibos[nCont].vcon_codigo+Cr_lf
+FloatToStr(MisRecibos[nCont].vdet_valor));
end;

end;


Un Saludo.

__hector
24-01-2004, 23:30:34
Sencillo...

Declaras el arreglo del tipo, y lo recorres, tal y como lo planteas. Tan sencillo como:


var
Arreglo : array[1..100] of TdetalleRecibo;
m : integer;
begin
for m := 1 to 100 do
begin
Arreglo[m].vrec_numero := 15;
...
...
end;

__cadetill
25-01-2004, 04:35:30
Sólo añadir a las 2 respuestas de Marcos y Héctor que, el array puedes declararlo dinámico si en tiempo de diseño no sabes que longuitud va a tener. Sería algo como...


type
TdetalleRecibo = record
vrec_numero : integer;
vrec_tipo : string;
vcon_codigo : string;
vdet_valor : currency;
end;
var
Arreglo : array of TdetalleRecibo;
m : integer;
begin
SetLength(Arreglo, 100)
for m := 1 to High(Arreglo) do
begin
Arreglo[m].vrec_numero := 15;
...
...
end;
....
end;

apolo18
26-01-2004, 20:53:29
Ok amigos muchas gracias, me funcionó perfectamente.

obiwuan
27-01-2004, 20:06:47
Veamos.

Me ha entrado una seria duda.

Es Virtual quien inicia el hilo, y es Apolo18 quien da las gracias por la resolución. ¿¿¿¿???? :confused: :confused:

¿Hay alguna explicación plausible a esto?

¿Se nos ha colado algún E.T. por aquí?

¿Apolo18 ha podido sacar provecho de una consulta iniciada por otro usuario?

Bueno, si alguien tiene alguna otra teoría .....