Comparar dos listbox

Iniciado por rapbyone, 13 Marzo 2017, 15:29 PM

0 Miembros y 1 Visitante están viendo este tema.

rapbyone

Hola amigos, hace rato que no pasaba por acá, me surgió la siguiente interrogante:

Cómo puedo comparar dos listbox, es decir que al recorrer las listas compruebe que tengan los mismos valores algo así como:

if list1 <> list2 then
msgbox "diferentes"
else
msgbox "iguales"
end if

Gracias amigos

Eleкtro









FJDA

a ver si te sirve esto, está en VB6

Código (vb) [Seleccionar]

With List1
.AddItem (25)
.AddItem (36)
.AddItem (18)
.AddItem (13)
End With
With List2
.AddItem (16)
.AddItem (36)
.AddItem (11)
End With



Dim Diferencia() As Boolean 'Array para guardar el resultado de la comparación


For Item = 0 To List1.ListCount - 1
         ReDim Preserve Diferencia(Item + 1)
     Diferencia(Item) = CBool(List1.List(Item) = List2.List(Item))
      If List2.List(Item) = "" Then
        Diferencia(Item) = False
      End If

Next Item
MsgBox ("¿Son iguales " & List1.List(0) & " y " & List2.List(0) & "? " & Diferencia(0))


Dim str As String
For Index = 0 To UBound(Diferencia) - 1
str = str + _
     List1.List(Index) & "=" & _
     List2.List(Index) & " --> " & _
     Diferencia(Index) & vbCrLf

Next Index
MsgBox (str)




meto las diferencias en un array booleano para poder acceder a él siempre que se quiera como se muestra en el primer mensaje.

como ejemplo he hecho una lista más larga que otra, pero lo suyo es que ambas sean de igual longitud.

espero que te sirva

saludos

rapbyone

Cita de: FJDA en 18 Marzo 2017, 15:18 PM
a ver si te sirve esto, está en VB6

Código (vb) [Seleccionar]

With List1
.AddItem (25)
.AddItem (36)
.AddItem (18)
.AddItem (13)
End With
With List2
.AddItem (16)
.AddItem (36)
.AddItem (11)
End With



Dim Diferencia() As Boolean 'Array para guardar el resultado de la comparación


For Item = 0 To List1.ListCount - 1
         ReDim Preserve Diferencia(Item + 1)
     Diferencia(Item) = CBool(List1.List(Item) = List2.List(Item))
      If List2.List(Item) = "" Then
        Diferencia(Item) = False
      End If

Next Item
MsgBox ("¿Son iguales " & List1.List(0) & " y " & List2.List(0) & "? " & Diferencia(0))


Dim str As String
For Index = 0 To UBound(Diferencia) - 1
str = str + _
     List1.List(Index) & "=" & _
     List2.List(Index) & " --> " & _
     Diferencia(Index) & vbCrLf

Next Index
MsgBox (str)




meto las diferencias en un array booleano para poder acceder a él siempre que se quiera como se muestra en el primer mensaje.

como ejemplo he hecho una lista más larga que otra, pero lo suyo es que ambas sean de igual longitud.

espero que te sirva

saludos


lo intentaré, muchas gracias amigo