Ver Mensaje Individual
  #5  
Antiguo 28-12-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Lepuke.
Cita:
Empezado por Lepuke Ver Mensaje
...
Iba todo bien haciendolo solo , hasta que me aparecieron dos errores que no se como resolver.

En la linea
Código Delphi [-]
 clean_array(datos);
me devuelve este error :
Cita:
Incompatible types: 'otro_array' and 'Array'
Eso es por que la función clean_array espera como argumento un valor de tipo: otro_array y le estas enviando uno de tipo: array [1 .. 5] of string.


Cita:
Empezado por Lepuke Ver Mensaje
En la linea
Código Delphi [-]
clean_array(arrays);
me devuelve este error :
Cita:
Incompatible types: 'otro_array' and 'Dynamic array'
La misma situación... Se espera un tipo: otro_array y le estas enviando un tipo: array of string.

No sé que es lo que estas buscando específicamente, pero te pongo un ejemplo de como podes pasar tu tipo (en este caso un arreglo dinámico) tanto por valor como por referencia.
Código Delphi [-]
...
type
  TDynArrayStr = array of string;

procedure InitDynArray(var Dyn: TDynArrayStr);
const
  CSTR : array[1..5] of string = ('st1', 'st2', 'st3', 'st4', 'st5');
begin
  SetLength(Dyn, Length(CSTR));
  Move(CSTR, Dyn[0], Length(CSTR)*SizeOf(string));
end;

procedure CleanDynArray(var Dyn: TDynArrayStr);
var
  l: Integer;
begin
  l := Length(Dyn);
  Finalize(Dyn);
  SetLength(Dyn, l);
end;

function NumberDynArray(Dyn: TDynArrayStr): TDynArrayStr;
var
  i: Integer;
begin
  SetLength(Result, Length(Dyn));
  for i := Low(Dyn) to High(Dyn) do
    Result[i] := Format('%d) %s',[i, Dyn[i]]);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  v: TDynArrayStr;
  i: Integer;
begin
  CleanDynArray(v);
  InitDynArray(v);
  v:= NumberDynArray(v);
  
  for i := Low(v) to High(v) do
    ListBox1.Items.Add(v[i]);

  v := nil;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita