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
¿VB6, o VB.NET?.
¡Saludos!
a ver si te sirve esto, está en VB6
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
Cita de: FJDA en 18 Marzo 2017, 15:18 PM
a ver si te sirve esto, está en VB6
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