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)




Muy buen script texic funciona genial.
:)

Orgulloso veterano de CGM
El poder de hacer un buen juego esta en tus manos.


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..
Cita de: CGM 2008CGM: Un poco mas serios, mejores Juegos.
Bienvenid@ a CGM. Recomenzamos desde cero, con un reglamento mas estricto, mejor definido y con mas ganas que nunca de hacer juegos con calidad comercial. El que avisa no es traidor: Leete las reglas si no quieres llevarte un capon makero.
Mercilessly!!
Plug-In para animaciones: http://ciberman.net/tweenline/

a mi me va de maravilla. te molesta si lo uso en mi aplicacion Mega Player para hacer busquedas de listas de reproduccion ???

Orgulloso veterano de CGM
El poder de hacer un buen juego esta en tus manos.

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




   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


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!




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?
Padre Nuestro del Programador de C           
C Nuestro que estas en la Memoria,
Compilado sea tu código,
venga a nosotros tu software,
carguense tus punteros.
así en la RAM como en el Disco Duro,
Danos hoy nuestro Array de cada día,
Perdona nuestros Warnings,
así como nosotros también los eliminamos,
no nos dejes caer en Bucles,
y libranos del Windows, Enter.

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




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.
Padre Nuestro del Programador de C           
C Nuestro que estas en la Memoria,
Compilado sea tu código,
venga a nosotros tu software,
carguense tus punteros.
así en la RAM como en el Disco Duro,
Danos hoy nuestro Array de cada día,
Perdona nuestros Warnings,
así como nosotros también los eliminamos,
no nos dejes caer en Bucles,
y libranos del Windows, Enter.

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?
Padre Nuestro del Programador de C           
C Nuestro que estas en la Memoria,
Compilado sea tu código,
venga a nosotros tu software,
carguense tus punteros.
así en la RAM como en el Disco Duro,
Danos hoy nuestro Array de cada día,
Perdona nuestros Warnings,
así como nosotros también los eliminamos,
no nos dejes caer en Bucles,
y libranos del Windows, Enter.

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




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?
Padre Nuestro del Programador de C           
C Nuestro que estas en la Memoria,
Compilado sea tu código,
venga a nosotros tu software,
carguense tus punteros.
así en la RAM como en el Disco Duro,
Danos hoy nuestro Array de cada día,
Perdona nuestros Warnings,
así como nosotros también los eliminamos,
no nos dejes caer en Bucles,
y libranos del Windows, Enter.

Em... Bueno dudo poder ser más claro que eso XD
Después te hago un script que haga lo que necesitás