ACHANDO E REMOVENDO ITENS

TRINDADI 10/03/2014 13:37:26
#435773
Boa Tarde pessoal. Estou tentando fazer um código e não consigo.
Eu quero que o programa pegue o primeiro item da list2, e compare com todos os itens da list1.
Se ele encontrar todos os numeros do iten da list2 dentro de algum item da lista1. então ele remove
o item correspondente da lista1, e adiciona o item da lista2 na lista 3. E depois continue com o segundo item da list2, ate o ultimo.
Já tentei com Mid, com split, mas náo consigo.
Se alguem puder me ajudar ficarei muito grato.
Nãó sei se ajuda mas anexei um exemplo.
ASHKATCHUP 10/03/2014 14:02:19
#435777
Trindadi:

A descrição do teu problema ta muito vazia. Que tipo de dado a LIST1 guarda? E a LIST2?

Qual código tu está tentando usar?

E o anexo não veio pro fórum.
NAUTILUZ 10/03/2014 15:27:07
#435781
Cara, e só usar 2 laços for com teste if
exemplo

for cont = 0 to list1.listcount -1
for cont2 = 0 to list1.listcount -1
if list2.list(cont) = list1.list(cont2) then
list1.remoItem cont2
list3.add = list2.list(cont)
end if
next cont2
next cont

[ô]não testei mas e o jeito..
TRINDADI 10/03/2014 16:00:27
#435782
Vou exemplificar aqui mesmo.

List1 List2
01 02 03 04 05 01 06 09
01 03 05 06 07 02 05 07
02 03 05 07 08
02 03 05 06 09
Ele pega o primeiro da list2, compara com todos da list1. Se achar esse numeros dentro de algum item da list1, ele
remove da list1. Note que com o primeiro item da list2, ele náo removeria nenhum item da list1, pois não existe
nenhum item da list1 que contem o primeiro da list2.
O segundo item da lista2, removeria o penultimo da list1, pois 02 05 07, esta no item 02 03 05 07 08, da list1.
Quem tiver a solução eu agradeço.
TRINDADI 10/03/2014 16:03:27
#435783
Ah se acharem mais facil, pode ser com Listview.
MARCELO.TREZE 10/03/2014 18:59:46
#435796
Resposta escolhida
olha na realidade o componente não facilita ou dificulta, ou só facilita ou dificulta um pouco, o negocio é a lógica, bom tente este código.

Dim Vetor1() As String
Dim Vetor2() As String
Dim Iguais As Integer
Iguais = 0
For l1 = 0 To List1.ListCount - 1
Vetor1 = Split(List1.List(l1), [Ô] [Ô])

For l2 = 0 To List2.ListCount - 1
Vetor2 = Split(List2.List(l2), [Ô] [Ô])

For v2 = 0 To UBound(Vetor2)
For v1 = 0 To UBound(Vetor1)
If Vetor2(v2) = Vetor1(v1) Then
Iguais = Iguais + 1
End If
Next v1
Next v2

If Iguais = 3 Then
List3.AddItem List1.List(l1)
List1.RemoveItem (l1)
Iguais = 0
l1 = 0
Else
Iguais = 0
End If

Next l2
Next l1
TRINDADI 10/03/2014 20:44:36
#435800
Obrigado pela resposta. O seu codigo dá um erro de tempo de execução. Mas acho que o caminho é este mesmo
apenas acertar alguma coisa na ordenação.... alguma coisa assim
MARCELO.TREZE 10/03/2014 21:59:41
#435804
colega tem que ver que erro é este e em que linha ele se dá
pois aqui funcionou
TRINDADI 10/03/2014 22:14:13
#435805
Opa vou ver o que esta acontecendo.
Aqui da erro em tempo de execução 424
O objeto é obrigatório
A linha é
For l1 = 0 To List1.ListCount - 1
Mais uma vez obrigado
TRINDADI 10/03/2014 22:22:40
#435806
Opss. já acertei o erro anterior, agora ta dando outro
Erro em tenpo de execução 381
Não foi possivel obter a propriedade List. Indice de propriedade de matriz invalido.
Obs: Ele executa e apresenta o erro.
TRINDADI 10/03/2014 22:25:05
#435807
Ah desculpe é na linha
Vetor1 = Split(ListBox1.List(l1), [Ô] [Ô])
Página 1 de 2 [14 registro(s)]
Tópico encerrado , respostas não são mais permitidas