carnales tengo 8 horas trabajando en esto estoy no queado en llegado a la pate de un programa donde tengo que desordenar la lista como caiga y tmbien buscar cierto texto en la lista para esto estoy utilisando un ListBox
Si alguien tiene el algoritmo pasemelo por fa de tanto que tengo ya programando no me sale no se me ocurre como puede ser puede parecer tonto pero asi es de antemano gracias.
Esto es facil , solamente se debe de pensar en una tecnica eficiente y tener la idea muy clara.
Lo que debes de hacer para desordenar la lista es crear un random de limite el numero de archivos almacenados el numero que salga es el numero de la lista que vas a tomar y lo pasas a otro listbox , tienes que programarlo para que no se repitan numeros y no se almacene varias veces el mismo dato.
Para buscar en un listbox simplemente un bucle for o un do while y vas buscando uno por uno entre los datos que hay.
Hola
Desordenar un listbox
Lo veo tan fácil como asignarle un valor aleatorio a cada elemento del listbox y ordenar por allí
Sub Desordenar()
dim Tabla(list1.listcount) as string, TotalEntradas as integer
TotalEntradas=list1.listcount
for x%=0 to TotalEntradas-1 'recorrer el listbox y asignar numero aleatorio
list1.itemdata(x%)=ObtenerNumero(TotalEntradas)
next x%
for x%=0 to TotalEntradas-1 'Ordenar por ese numero y dejar el resultado en tabla
tabla(list1.itemdata(x%))=list1(x%).list
next x%
List1.Clear 'borrar listbox actual
for x%=0 to TotalEntradas-1 'poner las entradas ordenadas por el numero aleatorio
list1.additem tabla(x%)
next x%
end sub
Esta función es la que obtiene el número
function ObtenerNumero(TotalEntradas as Integer)
Dim Numero as integer 'lugar donde quedará el numero obtenido
Dim NumValido as boolean 'para saber si el numero es válido o no
Numero=-1 'empezar con un valor no válido
while not EsValido(Numero,TotalEntradas)
randomize timer
Numero=int(rnd*TotalEntradas))
loop
ObtenerNumero=Numero
End Function
Saber si es válido el número
Function EsValido(Numero as integer,TotalEntradas as integer)
EsValido=true
if Numero<0 then 'si el numero es negativo
EsValido=false
else
for x%=0 to TotalEntradas-1
if list1.itemdata(x%)=Numero then 'si el numero ya había salido antes
EsValido=false
endif
next x%
endif
End Function
buscar un determinado textbox en la lista
Sub Buscar(texto as string)
for x%=0 to list1.listcount-1
if list1(x%).list=texto then
msgbox "Encontrado en la posición: " & x%
endif
next x%
end sub
Sale gracias ya descanse un raton a por cierto hoy salio la 3.0 del red music
www.redmusic.ya.st