Ver Mensaje Individual
  #2  
Antiguo 17-02-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Reputación: 25
Delphius Va camino a la fama
Hola Cecil,
Espero que esto pueda darte una idea:

Código Delphi [-]
function DimensionArray(Vector: array of integer; Dimension: integer): boolean;
begin
  result := High(Vector) >= Dimension;
end;

Como puedes observar, la función lo que hace es obtener el indice máximo del vector dinámico, y lo compara con la dimensión (mejor dicho posición) que tu deseas averiguar.

Un ejemplo de uso:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var vec: array of integer;
begin
  SetLength(vec,20);
  if ifDimensionArray(vec,20)
     then ShowMessage('Tiene la dimensión adecuada')
     else ShowMessage('No tiene la dimensión adecuada');
end;

Si corres este ejemplo, recibirás "No tiene la dimensión adecuada". Recuerda que en los vectores dinámicos la posición comienza a contar desde 0 hasta el máximo valor menos 1. Es decir que si tu haces:

Código Delphi [-]
SetLength(vec,40);

Tu vector irá desde 0 hasta 39.

Espero que esto haya sido de ayuda. Al lo dijo estupendamente correcto.
Muchas gracias Al por haberme dado el tironcito de orejas!
Saludos,
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 17-02-2008 a las 06:51:50. Razón: Correciones sobre el verdadero significado de Higth. Gracias Al!
Responder Con Cita