Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: rapbyone en 13 Marzo 2017, 15:29 PM

Título: Comparar dos listbox
Publicado por: rapbyone en 13 Marzo 2017, 15:29 PM
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
Título: Re: Comparar dos listbox
Publicado por: Eleкtro en 14 Marzo 2017, 01:22 AM
¿VB6, o VB.NET?.

¡Saludos!
Título: Re: Comparar dos listbox
Publicado por: 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
Título: Re: Comparar dos listbox
Publicado por: rapbyone en 19 Marzo 2017, 00:16 AM
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