SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Visual Basic para principiantes => Mensaje iniciado por: SamRico en Viernes 22 de Octubre de 2010, 11:59

Título: Comprobación de la existencia de elementos en una lista.
Publicado por: SamRico en Viernes 22 de Octubre de 2010, 11:59
Saludos, tengo un pequeño problema. Estoy haciendo un programa y tengo que pasar una serie de nombres de una lista a otra lista. Pero no quiero que se pasen de la lista 1 a la lista 2 si en la lista 2, el elemento de la lista 1 ya se encuentra.

Yo he intentado el siguiente código pero falla por motivos de falta de conceptos por mi parte. A ver si me pueden ayudar.

Este es el algoritmo que he realizado para hacer sólo esa operación (pasar un nombre de una lista a otra)

Código: Visual Basic
  1. Private Sub LstJugadores_DblClick()
  2.     Dim i As Integer
  3.     Dim Bandera As Boolean
  4.     Bandera = True
  5.     For i = 0 To LstAlineacion.ListCount - 1
  6.         If LstJugadores.Text <> LstAlineacion.List(i) & Bandera = True Then
  7.             LstAlineacion.AddItem LstJugadores.Text
  8.             LstJugadores.RemoveItem LstJugadores.ListIndex
  9.             Bandera = False
  10.         End If
  11.     Next i
  12. End Sub
  13.  
Título: Re: Comprobación de la existencia de elementos en una lista.
Publicado por: m0skit0 en Viernes 22 de Octubre de 2010, 12:10
Deberías repasar conceptos básicos del lenguaje antes de hacer nada. & se usa para concatenar cadenas de caracteres y no como "Y" lógico. Para eso se usa And. Además, Bandera es booleano, no necesitas compararlo con True. Él mismo es True or False y te vale como condición. Es decir tu IF quedaría tal que

Código: Visual Basic
  1. If LstJugadores.Text <> LstAlineacion.List(i) And Bandera Then
  2.  
Y esto es sólo la punta del iceberg de tu código, que realmente no hay por donde cogerlo. Por ejemplo, una vez que pones Bandera a False, ya no se vuelve a poner a True en ningún lugar, con lo cual el If no volvera a ser True jamás hasta el final del bucle.

Yo que tú me lo pensaría bien primero y volvería a escribirlo. Y definitivamente te recomiendo que cojas un buen libro sobre VB6 y te lo leas primero antes de nada.

Saludos