Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

borrar items repetidos

Estas en el tema de borrar items repetidos en el foro de Visual Basic clásico en Foros del Web. hola tengo un list box en visual basic con un monton de numeros y quiero que cuando aprieto un boton me borre los numeros que ...
  #1 (permalink)  
Antiguo 27/11/2005, 21:29
 
Fecha de Ingreso: agosto-2005
Mensajes: 19
Antigüedad: 18 años, 8 meses
Puntos: 0
borrar items repetidos

hola tengo un list box en visual basic con un monton de numeros y quiero que cuando aprieto un boton me borre los numeros que estan repetidos y que me los deje una sola vez, pero de alguna forma que yo le pueda poner hasta que item. por ejemplo: si tengo en el list

45
67
80
45
80
12

aca por ejemplo yo le quiero poner que me borre los que estan repetidos desde el item 0 (el de arriba de todo) hasta el item 3 (el segundo 45) o sea que aca me tendria que desaparecer un 45 (el 80 no porque esta afuera del intervalo que yo le doy), pero yo quiero que me borre el primer 45 que aparece o sea el del item 0, se entiende? o sea el 45 del item 3, es decir el ultimo que encuentra dentro de ese intervalo bueno ese que no me lo borre, sino todos los anteriores... desde muchas gracias a ver si me pueden dar una mano. saludos.
  #2 (permalink)  
Antiguo 28/11/2005, 03:56
Avatar de Kelpie  
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 22 años, 2 meses
Puntos: 8
Esto es un apaño que te puede servir si no empleas la propiedad itemdata. Te voy a preparar un algoritma un poco más 'profesional'. Ya te lo postearé

Código:
Dim r as integer
Dim s as integer
Dim limite as integer

limite=4 'Poner aquí el elemento hasta el que hay que revisar

if limite>list1.listcount-1 then exit sub

for r=0 to limite
  for s=0 to limite
    if list1.list(r)=list1.list(s) then
      list1.itemdata(s)=1
    end if
  next 's
next 'r

for r=limite to 0 step -1
  list1.removeitem(s)
next 'r
Saludos
__________________
Kelpie
  #3 (permalink)  
Antiguo 28/11/2005, 10:37
 
Fecha de Ingreso: agosto-2005
Mensajes: 19
Antigüedad: 18 años, 8 meses
Puntos: 0
hola gracias por la respuesta

pero me aparece un error, cuando toco el boton me borra algunos numeros (me siguen quedando repetidos) y despues me aparece llamada a procedimiento o argumento no valido

cuando le pongo depurar el error me dice que esta en la ultima parte, aca:

List1.RemoveItem (s)


a ver que podemos hacer...yo me acuerdo que antes lo sabia hacer pero estuve un tiempo sin usar el visual y me olvide todo...
  #4 (permalink)  
Antiguo 28/11/2005, 11:40
Avatar de lop7  
Fecha de Ingreso: junio-2005
Ubicación: portuguesa (Venezuela)
Mensajes: 187
Antigüedad: 18 años, 11 meses
Puntos: 1
hola...
Copia esto en el boton que necesitas..... deberia funcionar

Private Sub Command1_Click()
Dim r As Integer
Dim s As Integer

Dim limite1, limite2 As Integer


limite1 = Text1.Text 'Poner aquí el elemento hasta el que hay que revisar
limite2 = Text2.Text 'el final del rango... revisa que no este fuera del intervalo

limite1 = limite1 - 1

If limite1 > 0 And limite1 < limite2 Then

If limite2 > limite1 And limite2 < List1.ListCount - 1 Then
For r = limite1 To limite2
For s = r + 1 To limite2
If List1.List(r) = List1.List(s) Then
On Error Resume Next
List1.RemoveItem (s)
limite2 = limite2 - 1
End If
Next 's
Next 'r
End If
End If
End Sub

Saludos...
Nos vmos...
__________________
A quien dices un secreto le entregas tu libertad :si:
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:23.