Foro de elhacker.net

Programación => 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
  1. With List1
  2. .AddItem (25)
  3. .AddItem (36)
  4. .AddItem (18)
  5. .AddItem (13)
  6. End With
  7. With List2
  8. .AddItem (16)
  9. .AddItem (36)
  10. .AddItem (11)
  11. End With
  12.  
  13.  
  14.  
  15. Dim Diferencia() As Boolean 'Array para guardar el resultado de la comparación
  16.  
  17.  
  18. For Item = 0 To List1.ListCount - 1
  19.         ReDim Preserve Diferencia(Item + 1)
  20.     Diferencia(Item) = CBool(List1.List(Item) = List2.List(Item))
  21.      If List2.List(Item) = "" Then
  22.        Diferencia(Item) = False
  23.      End If
  24.  
  25. Next Item
  26. MsgBox ("¿Son iguales " & List1.List(0) & " y " & List2.List(0) & "? " & Diferencia(0))
  27.  
  28.  
  29. Dim str As String
  30. For Index = 0 To UBound(Diferencia) - 1
  31. str = str + _
  32.     List1.List(Index) & "=" & _
  33.     List2.List(Index) & " --> " & _
  34.     Diferencia(Index) & vbCrLf
  35.  
  36. Next Index
  37. MsgBox (str)
  38.  
  39.  


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
a ver si te sirve esto, está en VB6

Código
  1. With List1
  2. .AddItem (25)
  3. .AddItem (36)
  4. .AddItem (18)
  5. .AddItem (13)
  6. End With
  7. With List2
  8. .AddItem (16)
  9. .AddItem (36)
  10. .AddItem (11)
  11. End With
  12.  
  13.  
  14.  
  15. Dim Diferencia() As Boolean 'Array para guardar el resultado de la comparación
  16.  
  17.  
  18. For Item = 0 To List1.ListCount - 1
  19.         ReDim Preserve Diferencia(Item + 1)
  20.     Diferencia(Item) = CBool(List1.List(Item) = List2.List(Item))
  21.      If List2.List(Item) = "" Then
  22.        Diferencia(Item) = False
  23.      End If
  24.  
  25. Next Item
  26. MsgBox ("¿Son iguales " & List1.List(0) & " y " & List2.List(0) & "? " & Diferencia(0))
  27.  
  28.  
  29. Dim str As String
  30. For Index = 0 To UBound(Diferencia) - 1
  31. str = str + _
  32.     List1.List(Index) & "=" & _
  33.     List2.List(Index) & " --> " & _
  34.     Diferencia(Index) & vbCrLf
  35.  
  36. Next Index
  37. MsgBox (str)
  38.  
  39.  


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