• Viernes 26 de Abril de 2024, 20:54

Autor Tema:  Comprobación de la existencia de elementos en una lista.  (Leído 1479 veces)

SamRico

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Comprobación de la existencia de elementos en una lista.
« en: Viernes 22 de Octubre de 2010, 11:59 »
0
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.  

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Comprobación de la existencia de elementos en una lista.
« Respuesta #1 en: Viernes 22 de Octubre de 2010, 12:10 »
0
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