Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-02-2008
Avatar de Cecil
Cecil Cecil is offline
Miembro
 
Registrado: may 2007
Posts: 97
Poder: 17
Cecil Va por buen camino
Comprobar si existe elemento en el Array

Hola, me gustaría saber la forma de comprobar si en un array existe el elemento al que intentamos acceder, es decir, si tenemos un array de integer de tamaño 10 por ejemplo, si intentamos acceder a la posición 20 nos mostrarán una excepción indicando que es una posición inaccesible. Algo así como el Assigned, pero para este tipo de datos. Mil gracias y un saludo.
__________________
"There is nothing either good or bad, but thinking makes it so" William Shakespeare.
Responder Con Cita
  #2  
Antiguo 17-02-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 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
  #3  
Antiguo 17-02-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

¡Hola!

Puedes usar la función High dándole como argumento el arreglo en cuestión. Te devolverá el último índice válido del arreglo; o la cantidad de elementos menos 1, si el argumento es un parámetro formal arreglo abierto de la rutina donde se escriba la llamada a High.

La ayuda de Delphi detalla más su uso, pero de todas formas no dejes de plantearnos tus dudas.

Saludos.

Al González.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Buscar un elemento en un array sin recorrerlo David OOP 3 23-07-2011 16:15:40
Actualizar Caption de un elemento de Array of TLabel's gluglu Varios 2 15-06-2007 18:24:16
quitar elemento de un array dinámico elcigarra OOP 2 08-09-2006 23:30:34
Comprobar si un objeto existe kikecg HTML, Javascript y otros 3 21-07-2006 09:20:37
Comprobar si una tabla existe. BECERRA OOP 2 03-01-2005 16:43:53


La franja horaria es GMT +2. Ahora son las 18:14:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi