Autor Tópico: Comparando duas ListBox  (Lida 3459 vezes)

ajritta

  • Full Member
  • ***
  • Mensagens: 202
  • Karma: +0/-0
  • A Paz do Eu
Comparando duas ListBox
« Online: Abril 14, 2009, 04:35:29 pm »
Boa tarde!

Amigos, tenho a seguinte situação: Uma LISTA A com 10 elementos e uma LISTA B com 2 elementos. O que eu gostaria de fazer é percorrer toda LISTA A comparando com a LISTA B e os elementos que foram iguais, serem excluídas da LISTA A, ou seja, a LISTA A não pode ter elementos que existam na LISTA B.
Tentei fazer da seguinte forma, mas não funcionou:

FOR i = 1 TO ListCount(LIST_Unidades)
  j = 1
  WHILE s <> ListCount(LIST_Acessos)
    IF LIST_Acessos[j] = LIST_Unidades THEN
      ListDelete(LIST_Unidades,i)
    END
    j++      
  END
END

Alguém saberia me dizer o que está errado?

Desde já,
agradeço a atenção de todos.

Marcelo Cruz

  • Administrator
  • *****
  • Mensagens: 175
  • Karma: +0/-0
  • .
Re: Comparando duas ListBox
« Responder #1 Online: Abril 14, 2009, 05:07:47 pm »
Fala Alexandro,
no IF colqoue isto aqui

if  ListBox1..DisplayedValue = ListBox2..DisplayedValue then
 // isto aqui mostra a dezena da listbox

Abraco

ajritta

  • Full Member
  • ***
  • Mensagens: 202
  • Karma: +0/-0
  • A Paz do Eu
Re: Comparando duas ListBox
« Responder #2 Online: Abril 16, 2009, 11:42:52 am »
Oi Marcelo,

Eu tentei a sua sugestão, vários ítens repetidos foram excluídos, mas outros ainda ficaram.
Não estou entendendo, é como se não percorresse a lista corretamente. Você teria alguma outra sugestão??

Abraços.

ajritta

  • Full Member
  • ***
  • Mensagens: 202
  • Karma: +0/-0
  • A Paz do Eu
Re: Comparando duas ListBox
« Responder #3 Online: Abril 20, 2009, 05:20:52 pm »
Salve amigos!

Depois de várias semanas pesquisando e testando as mais variadas formas de percorrer uma listbox eliminando os elementos repetidos desejados, finalmente consegui encontrar a solução.

FOR k = 1 TO ListCount(LIST_Acessos)
  j = 1
  WHILE j <= ListCount(LIST_Unidades)
    IF LIST_Unidades[j] = LIST_Acessos[k] THEN
      ListDelete(LIST_Unidades,j)
    ELSE
      j++
    END
  END
END


Agradeço a ajuda de todos!
Abraços!