Comunidad Game Maker

Ayuda => Desarrollo de Scripts => Mensaje iniciado por: Texic en Junio 18, 2010, 06:04:46 AM

Título: Buscador
Publicado por: Texic en Junio 18, 2010, 06:04:46 AM
Creador: Yo

Version de GM utilizada:  :GM8:

Descripcion:
Este es un script que realiza una b?squeda a partir del directorio inicial, pasando por todos los sub directorios para encontrar el archivo con los par?metros ingresados. En un vector, llamado por simple azar found, se almacenan los nombres de todos los archivos coincidentes, y en el vector founds los directorios de dichos archivos respectivamente. De manera que founds[1]+found[1] ser?a el archivo y su ruta completa

Buscar
/*
argument0=Directorio
argument1=Archivo
argument2=Identificador del primer directorio. No importa realmente. Se recomienda 1
Ejemplo: Buscar("C:\User\","dibujo",1)
*/
actdir=argument0
file=string_lower(argument1)
screen_redraw()
fil[argument2]=0
cfile=file_find_first(argument0+"\"+"*"+argument1+"*",0)
if string_pos(file,string_lower(cfile))<>0 {found+=1 founds[found]=cfile foundsd[found]=string_replace_all(argument0,"\\","\")}
while cfile<>""
{
cfile=file_find_next()
if string_pos(file,string_lower(cfile))<>0 {found+=1 founds[found]=cfile foundsd[found]=string_replace_all(argument0,"\\","\")}
}
cfile=file_find_first(argument0+"\*",fa_directory)
if cfile="."
{
cfile=file_find_next() fil[argument2]+=1
cfile=file_find_next() fil[argument2]+=1
}
ref[argument2]=cfile
if cfile<>"" and file_attributes(argument0+"\"+cfile,fa_directory)=1 {Buscar(string_replace_all(argument0+"\"+cfile+"\","\\","\"),argument1,argument2+1)}
cfile=ref[argument2]
while cfile<>""
{
cfile=file_find_first(argument0+"\*",fa_directory)
repeat (fil[argument2])
{
cfile=file_find_next()
}
cfile=file_find_next() fil[argument2]+=1
ref[argument2]=cfile
if file_attributes(argument0+"\"+cfile,fa_directory)=1 and cfile<>"" {Buscar(string_replace_all(argument0+"\"+cfile+"\","\\","\"),argument1,argument2+1)}
cfile=ref[argument2]
}


No s? bien por qu? lo hice, en alg?n lado le? que alguien pregunt? si se pod?a y cuando se lo negaron lo quise refutar  XD
Adjunto en ejemplo sencillo. Tengo otro que indexa los archivos la primera vez q los busca y el resto de las veces no tarda nada

Espero que a alguno le sirva  :) (Sobre todo al que pregunt? eso, sea quien sea  XD)
Título: Re: Buscador
Publicado por: kakashigna en Octubre 30, 2010, 10:45:32 PM
Muy buen script texic funciona genial.
:)
Título: Re: Buscador
Publicado por: Texic en Octubre 31, 2010, 01:43:25 AM
Gracias  ;D
Título: Re: Buscador
Publicado por: Ciberman en Octubre 31, 2010, 01:55:48 AM
muy intereaante, no lo revis? por dentro al script porque tampoco lo nesecito...
creo que en las carpetas del sistema y en temporales se traba.. debe ser por la cantidad de archivos..
Título: Re: Buscador
Publicado por: kakashigna en Octubre 31, 2010, 04:05:35 AM
a mi me va de maravilla. te molesta si lo uso en mi aplicacion Mega Player (http://k-games.co.cc/megaplayer) para hacer busquedas de listas de reproduccion ???
Título: Re: Buscador
Publicado por: Texic en Octubre 31, 2010, 04:56:07 AM
Para nada, es totalmente abierto, usalo y modificalo a tu conveniencia.
Ciberman, es cierto, en algunas carpetas tarda mucho mas, quizas se pueda mejorar un poco, no esta optimizado el codigo
Título: Re:Buscador
Publicado por: ferhand en Enero 30, 2013, 04:41:37 PM
   Saludos makero amigo Texic:


   Muy buena contribución. Hace ya "tiempo" venía con la idea de realizar algo parecido, pero siempre lo dejo para "después", "después" que nunca llega.  :-[


   Me lo llevo a casa y en algún "tiempo" lo reviso.

   Gracias por liberarlo como código abierto. Desde ya te doy un diez.   XD

   En caso de que encuentre algún "bug" o le realice alguna modificación te aviso.  ;D
Título: Re:Buscador
Publicado por: Texic en Enero 30, 2013, 05:09:04 PM
Cita de: ferhand en Enero 30, 2013, 04:41:37 PM
   Saludos makero amigo Texic:


   Muy buena contribución. Hace ya "tiempo" venía con la idea de realizar algo parecido, pero siempre lo dejo para "después", "después" que nunca llega.  :-[


   Me lo llevo a casa y en algún "tiempo" lo reviso.

   Gracias por liberarlo como código abierto. Desde ya te doy un diez.   XD

   En caso de que encuentre algún "bug" o le realice alguna modificación te aviso.  ;D

Gracias, cualquier cosa me avisás y corrijo, saludos!
Título: Re:Buscador
Publicado por: Mr.Dudas en Enero 30, 2013, 08:59:13 PM
Me gusto el script pero hay alguna manera de hacer que por ejemplo si esta buscando algo y al medio de la búsqueda se cierra por error o algo y cuando lo vuelvas a iniciar se inicie de ahí mismo en vez de volver a empezar la búsqueda desde del principio?
Título: Re:Buscador
Publicado por: Texic en Enero 30, 2013, 11:00:35 PM
Mh, si, de hecho si, pero tendrías que guardar los parámetros globales de la búsqueda (como los arrays que llena y el directorio de búsqueda actual). Entonces al reanudar la búsqueda hacés que el script saltee carpetas que sean alfabéticamente menores a las de la última rama buscada
Título: Re:Buscador
Publicado por: Mr.Dudas en Enero 31, 2013, 12:17:18 AM
Cita de: Texic en Enero 30, 2013, 11:00:35 PM
Mh, si, de hecho si, pero tendrías que guardar los parámetros globales de la búsqueda (como los arrays que llena y el directorio de búsqueda actual). Entonces al reanudar la búsqueda hacés que el script saltee carpetas que sean alfabéticamente menores a las de la última rama buscada
A mi se me ocurrio una manera que era cuando el juego se cierre en una ini guarde el ultimo lugar donde estuvo buscando pero me di cuenta de que eso no funcionaria porque solo buscara ESA ruta y no la ruta original.
Título: Re:Buscador
Publicado por: Mr.Dudas en Febrero 27, 2013, 03:41:33 PM
Se podria utilizar este script para ver el contenido de una carpeta(los archivos que tiene(exe, zip, txt...) y carpetas)?Si la respuesta es si PUES COMO SE PODRÍA LOGRAR HACER LO?
Título: Re:Buscador
Publicado por: Texic en Febrero 27, 2013, 03:49:32 PM
La respuesta es sí, simplemente tendrías que pasar "*" o "" (no estoy seguro) como parámetro de búsqueda en el nombre del archivo y modificar el script para que guarde cada coincidencia encontrada en un array
Título: Re:Buscador
Publicado por: Mr.Dudas en Febrero 27, 2013, 11:25:30 PM
Cita de: Texic en Febrero 27, 2013, 03:49:32 PM
La respuesta es sí, simplemente tendrías que pasar "*" o "" (no estoy seguro) como parámetro de búsqueda en el nombre del archivo y modificar el script para que guarde cada coincidencia encontrada en un array
Y como hago eso?
Título: Re:Buscador
Publicado por: Texic en Febrero 28, 2013, 03:08:53 AM
Em... Bueno dudo poder ser más claro que eso XD
Después te hago un script que haga lo que necesitás
Título: Re:Buscador
Publicado por: elviskelley en Marzo 02, 2013, 02:05:26 AM
Me parece muy bueno, para implementar un reproductor de musica.
Título: Re:Buscador
Publicado por: Mr.Dudas en Marzo 02, 2013, 07:07:46 PM
Cita de: Texic en Febrero 28, 2013, 03:08:53 AM
Em... Bueno dudo poder ser más claro que eso XD
Después te hago un script que haga lo que necesitás
Bueno pues cuando puedas...
Título: Re:Buscador
Publicado por: Texic en Marzo 02, 2013, 08:21:10 PM
Listo el pollo, te los deja convenientemente metidos en un array (como el algoritmo original)
Título: Re:Buscador
Publicado por: Mr.Dudas en Marzo 02, 2013, 11:28:33 PM
Cita de: Texic en Marzo 02, 2013, 08:21:10 PM
Listo el pollo, te los deja convenientemente metidos en un array (como el algoritmo original)
;D Gracias pollo es lo que buscaba