Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-06-2007
[David] David is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Málaga
Posts: 417
Poder: 22
David Va por buen camino
Smile Buscar un elemento en un array sin recorrerlo

Hola

Quiero encontrar un elemento en un array , pongo dos posibilidades , me interesa sobremanera saber la primera .

Primera opción :

Código Delphi [-]
var
miarray : array[0..n] of integer;
begin
 // Los valores dados al array no van a estar nunca repetidos
 miarray[0] := 12;
 miarray[1] := 14;
 miarray[5] := 2;
..................
 miarray[n] := X;

For i:= 0 to LastMilista do
begin
   //quiero saber , si un número esta en el array , sin tener que hacer esto :
    for j:=0 to high(miarray) do // esto son demasiados pasos , pregunto por algo más directo
     if i = miarray[j] then
end;
end;


Ahora pongo la segunda opción (esta es menos importante) ;
Código Delphi [-]
type
TRegistro = record;
articulo : string;
campo2: integer;
...
end;

implementation

procedure TForm1.Loquesea;
var
 PRegistro : array[0..n] of TRegistro;
miarticulo : string;
begin
PRegistro[0].Articulo := 'xxxx';
...........
Pregistro[n].Articulo := 'zzzz';

while not MilistaArticulos.eof do
begin
if miarticulo = ¿? then // Aquí que código pongo para ver si esta en el array y saber que posición del array es,en el anterior caso no pregunto la posición del array sólo saber si esta.
end;
end;


Un saludo
Responder Con Cita
  #2  
Antiguo 28-06-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Y porq no utilizas un stringlist, puedes apoyarte en el metodo IndexOf
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #3  
Antiguo 30-06-2007
Avatar de courtois
courtois courtois is offline
Miembro
 
Registrado: abr 2006
Ubicación: Mexico DF
Posts: 200
Poder: 19
courtois Va por buen camino
¿el stringlist no va a recorrerse para encontrar el valor? en el caso del array, si lo ordenas con un metodo como quicksort o heapsort y usas un algoritmo de busqueda por selección o busqueda binaria, no será necesario recorrerlo por completo para encontrar el valor y será mas "directo"
Responder Con Cita
  #4  
Antiguo 23-07-2011
manuFP manuFP is offline
Registrado
NULL
 
Registrado: jun 2011
Posts: 6
Poder: 0
manuFP Va por buen camino
Yo hice algo parecido de la siguiente forma...

Saludos.

Yo hice algo parecido de la siguiente forma

Código Delphi [-]
 
function buscacodigo(codigo:integer;Lista:Array [1..n] of integer):integer;
 
var contador : integer
 
begin
contador:=0;
while not ((Lista[contador]=codigo) or (contador>n)) do
begin
if lista[contador]=codigo then result:= contador;
inc(contador);
end;
end;




Bueno realmente había declarado anteriormente un tipo array y después le pasaba a la función la variable de dicho tipo... esto es


Código Delphi [-]
 
type 
TLista = array [1..250] of integer;
 
var Lista : TLista;




A continuación pasaba a la función los 2 parámetros y finalmente el resultado de la función es el que buscas.
Con esta función te evitas pasar todo el array, ya que en el mismo momento en el que lo encuentre saldrá del bucle.

Espero que te sirva.
Saludos.
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
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
Elemento seleccionado de un ListView Tecnic2 OOP 4 09-06-2005 16:09:29
Como Asignar Variable Tipo Array de Tform a otro Array del Mismo tipo morfeo21 Varios 5 17-08-2004 17:39:51
Añadir elemento a DbLookUpCB... Tanix Varios 4 26-02-2004 13:02:19


La franja horaria es GMT +2. Ahora son las 19:36:59.


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