Ver Mensaje Individual
  #4  
Antiguo 01-02-2006
cuburu cuburu is offline
Miembro
 
Registrado: mar 2005
Posts: 63
Reputación: 20
cuburu Va por buen camino
quizas esto pueda complementarse con lo que explico eliash

Un array no es más que una tabla, digamos de 2x2 que almacena información en cada campo que tiene, por ejemplo, en el array anterior podemos almacenar 4 datos que es la multiplicación de 2x2. La forma de almacenamiento es por medio de filas x columnas. Lógicamente éste tipo de arreglos se llaman estáticos debido a que tienen un tamaño fijo.

Ahora, los arreglos dinamicos tienen la misma filosofía que los arreglos estaticos pero la diferencia es que no tienen declarado un tamaño fijo, éste se va creando conforme se agregen o eliminen datos de éste.

para declarar un arraglo estático se utiliza algo como esto:

Código Delphi [-]
var
  //Este arreglo podrá almacenar información desde la posición 0 a la 5.
  Array_estatico: array[0..5] of Integer;

y para un arreglo dinamico:

Código Delphi [-]
var
  {Solo definimos el "esqueleto" de nuesto arreglo pero no podemos declarar
nada hasta darle un tamaño}.
  Array_dinamico: array of Integer;

  {Para darle un tamaño determinado se utiliza la sentencia SetLength como te dijo eliash, esto sería algo asi:}
  SetLength(Array_dinamico, 5);

De esta forma estamos declarando al arreglo dinamico de 5 posiciones. Si deseamos volver a redimensionar el arreglo volvemos a utilizar el SetLength y colocamos el nuevo valor.

NOTA: Si redimensionamos el arreglo a un tamaño menor al anterior los valores que se encuentren dentro del rango eliminado seran borrados. Es decir, si el arreglo era de 5 y lo redimensionamos a 3 los valores en las posiciones 4 y 5 se perderán.

Ya por último y para no hacertela tan larga y cansada si necesitamos extraer la información de un arreglo normalmente utilizaríamos una variable que almacenara el inicio del arreglo y otra que manejará el final.... eso es para simples mortales.

Existe una forma más sencillas de saber de donde tenemos que empezar a buscar, por ejemplo si nuestro arreglo es de 5 posiciones pero no lo recordamos utilicemos a Delphi para que los busque por nosotros.

Código Delphi [-]
var
  Cont: Integer;
begin
  for Cont = Low(Array_dinamico) to Hight(Array_dinamico) do
  begin
    ShowMessage('El valor es: ' + IntToStr(Array_dinamico[Cont]))
  end;
end;

Las funciones Low y Higth hacen toda la chamba por nosotros, localizan donde existen valores almacenados y nos los devuelven.

Bueno, espero que te halla servido esta explicación un poco más a fondo pero sencilla de lo que es una transacción dinamica y estática, hay muchas más cosas que aprender pero creo que con esto puedes empezar a trabajar.

Suerte.
Responder Con Cita