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 09-08-2012
Avatar de danyfebrero
danyfebrero danyfebrero is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 38
Poder: 0
danyfebrero Va por buen camino
borrar los items de listbox1 que no existan en listbox2

Hola, me pudieran ayudar?
Tengo el ListBox1 con varios items que voy a borrar, pero no quiero que se me borren los que existan en el ListBox2.
Ej:
en el Listbox1 tengo:
a
b
c
d
e
en el ListBox2 tengo:
a
c
d

entonces se deberian borrar
b y e.
pero no logro hacerlo con bucles, ni con nada de lo que he probado.
saludos y gracias de antemano.
dany
Responder Con Cita
  #2  
Antiguo 09-08-2012
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Debes hacer un bucle que recorra la primera lista:

Código Delphi [-]
for j := 0 to (Listbox1.Items.Count - 1) do begin
   ...

Para cada item de la primera lista buscarlo en la segunda; Para ello usa en método IndexOf o Find de la segunda lista (en la ayuda tienes los parámetros):

Código Delphi [-]
  ListBox2.Items.IndexOf  ...

  ListBox2.Items.Find ...

Por ultimo, si lo encuentras, lo borras de la primera con el método Delete de Items.

Prueba y si te da error, ya dirás...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 09-08-2012
Avatar de danyfebrero
danyfebrero danyfebrero is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 38
Poder: 0
danyfebrero Va por buen camino
ok gracias, voy a probar. saludos
Responder Con Cita
  #4  
Antiguo 09-08-2012
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola, solo añadir que al borrar algunos items, tu ciclo debe comenzar desde ultimo.

Código Delphi [-]
 for i:=ListBox1.Count-1 downto 0  do
  begin
   if ListBox2.Items.IndexOf(ListBox1.Items[i])=-1 then
    ListBox1.Items.Delete(i);
  end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #5  
Antiguo 09-08-2012
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Caro Ver Mensaje
Código Delphi [-]
 for i:=ListBox1.Count-1 downto 0  do
  begin
   if ListBox2.Items.IndexOf(ListBox1.Items[i])=-1 then
    ListBox1.Items.Delete(i);
  end;
Yo que estaba intentando que lo hiciera él...
Ahora perdió la gracia...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 10-08-2012
Avatar de danyfebrero
danyfebrero danyfebrero is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 38
Poder: 0
danyfebrero Va por buen camino
hola gracias por todo Caro y a ti también Neftali en especial porque querias que me superara.... por cierto por qué debe comenzar desde el final?. saludos y gracias
Responder Con Cita
  #7  
Antiguo 10-08-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por danyfebrero Ver Mensaje
hola gracias por todo Caro y a ti también Neftali en especial porque querias que me superara.... por cierto por qué debe comenzar desde el final?. saludos y gracias

Pruébalo desde el principio y verás el resultado , así se aprende
Responder Con Cita
  #8  
Antiguo 10-08-2012
Avatar de danyfebrero
danyfebrero danyfebrero is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 38
Poder: 0
danyfebrero Va por buen camino
disculpen, y si quisiera que se borraran del listbox1 los que se repiten en el listbox2, cómo haría?
gracias otra vez
Responder Con Cita
  #9  
Antiguo 10-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 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
Cita:
Empezado por danyfebrero Ver Mensaje
hola gracias por todo Caro y a ti también Neftali en especial porque querias que me superara.... por cierto por qué debe comenzar desde el final?. saludos y gracias
Hola.

El error sucede por que el for recorre ListBox1 desde 0 a ListBox1.Count-1, pero cuando un ítem es borrado ya no existen ListBox1.Count-1 ítems, si no menos. Por lo que en algún punto, ListBox1.Items[i] estará referenciando a una posición que ya no existe.


Saludos.
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 10-08-2012 a las 04:54:55.
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
Borrar items a un ListBox eddg Varios 10 31-10-2007 17:16:22
ListBox1 DM2005 Varios 5 06-07-2006 06:35:48
como escribir datos a un ListBox1 gulder API de Windows 2 23-05-2005 21:03:01
Borrar items de un TreeView ibarrols OOP 12 06-06-2003 19:50:30
Pasar datos de un Adoquery a un ListBox1 danytorres Varios 6 09-05-2003 02:16:37


La franja horaria es GMT +2. Ahora son las 07:22:57.


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