Ver Mensaje Individual
  #3  
Antiguo 22-06-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cuando tú haces algo así en PHP:

Código PHP:
$arregloStrings = array('a''b''c'); 
Estás creando un nuevo "Array" con unos elementos predeterminados. Observa que "array()" es una construcción del lenguaje PHP, que devuelve, precisamente, un Array del tipo de los parámetros que le pases a la construcción "array()".

Con Delphi puedes también iniciarlizar "Arrays" estáticos, tal que así:

Código Delphi [-]
var
  arregloStrings: array [1..3] of string = ('a', 'b', 'c');

Por otro lado, un Array dinámico en Delphi, tal como dices, puede declararse, iniciarlizarse y rellenarse de este modo:

Código Delphi [-]
var
  arrayDinamico: array of string;

begin
  SetLength(arrayDinamico, 3);

  arrayDinamico[0] := 'a';
  arrayDinamico[1] := 'b';
  arrayDinamico[2] := 'c';

  // Muestra "a"
  ShowMessage(arrayDinamico[0]);

end;

Sin embargo, echando un vistazo en la ayuda de Delphi, en el apartado "Open array constructors", puede leerse lo siguiente:

Cita:
Open array constructors allow you to construct arrays directly within function and procedure calls.
Con lo que es posible hacer algo como esto:

Código Delphi [-]
type
  { Tipo que nos servirá para devolver
    el resultado de la siguiente función
  }
  TArrayStrings = array of string;

{ Esta función toma como parámetros una serie de cadenas
  y devuelve un "TArrayStrings" (array of strings) como
  resultado
}
function CrearArray(elementos: array of string) : TArrayStrings;
var
  i: integer;
begin
  // Inicializamos el Array/resultado
  SetLength(Result, High(elementos)+1);

  // Lo rellenamos con los elementos
  for i := 0 to High(elementos) do
    Result[i] := elementos[i];

end;

{ Ejemplo de llamada a la función anterior
}
procedure TForm1.Button1Click(Sender: TObject);
var
  unArray: TArrayStrings;
begin

  { ¿A que esto se parece algo más a PHP? }
  unArray := CrearArray(['a', 'b', 'c']);

  ShowMessage(unArray[0]); // Muestra "a"

end;

Nota: Lo inmediatamente anterior puede no ser del todo correcto, o en todo caso puede ser muy mejorable, lo escribí a bote pronto a modo de introducción al tema, para explicar cómo es posible crear "Arrays" de ese modo, pero, que cada palo aguante su vela, he dicho.

En fin, lo mismo hasta sirve de algo el rollo que acabo de meteros.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita