Noticias

¡Ayuda a la Comunidad GM, haz una donación!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Buscador  (Leído 6360 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Texic

  • Moderadores globales
  • Legendario
  • *
  • Puntos: 1213
  • Mensajes: 2.158
  • Agradecido: 3 veces
  • Sexo: Masculino
  • I Have The Fire!
    • Ver Perfil
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
Código: [Seleccionar]
/*
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)




 


No Tienes Permisos Para Dar Puntos
point 20 Puntos

Usuarios que puntuaron el tema » ferhand (10 Pts) » Mr.Dudas (5 Pts) » Maximo (5 Pts) 


Desconectado kakashigna

Respuesta #1 en: Octubre 30, 2010, 10:45:32 pm
Muy buen script texic funciona genial.
:)

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


Desconectado Texic

  • Moderadores globales
  • Legendario
  • *
  • Puntos: 1213
  • Mensajes: 2.158
  • Agradecido: 3 veces
  • Sexo: Masculino
  • I Have The Fire!
    • Ver Perfil
Respuesta #2 en: Octubre 31, 2010, 01:43:25 am
Gracias  ;D




 


Desconectado Ciberman

  • Okupa
  • *
  • Puntos: 212
  • Mensajes: 1.221
  • Agradecido: 3 veces
  • Sexo: Masculino
  • Ciberman Games - Un pixel Marca la Diferencia
    • Ver Perfil
    • Ciberman
Respuesta #3 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..

Cita de: CGM 2008
CGM: 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/
 


Desconectado kakashigna

Respuesta #4 en: Octubre 31, 2010, 04:05:35 am
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.
 


Desconectado Texic

  • Moderadores globales
  • Legendario
  • *
  • Puntos: 1213
  • Mensajes: 2.158
  • Agradecido: 3 veces
  • Sexo: Masculino
  • I Have The Fire!
    • Ver Perfil
Respuesta #5 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




 


Desconectado ferhand

  • Adicto
  • *
  • Puntos: 273
  • Mensajes: 476
  • Sexo: Masculino
    • Ver Perfil
Respuesta #6 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

 


Desconectado Texic

  • Moderadores globales
  • Legendario
  • *
  • Puntos: 1213
  • Mensajes: 2.158
  • Agradecido: 3 veces
  • Sexo: Masculino
  • I Have The Fire!
    • Ver Perfil
Respuesta #7 en: Enero 30, 2013, 05:09:04 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!




 


Desconectado Mr.Dudas

  • Asiduo
  • *
  • Puntos: 175
  • Mensajes: 152
  • Sexo: Masculino
  • Evite los virus. Hierva el ordenador antes de usar
    • Ver Perfil
Respuesta #8 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?

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.
 


Desconectado Texic

  • Moderadores globales
  • Legendario
  • *
  • Puntos: 1213
  • Mensajes: 2.158
  • Agradecido: 3 veces
  • Sexo: Masculino
  • I Have The Fire!
    • Ver Perfil
Respuesta #9 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




 


Desconectado Mr.Dudas

  • Asiduo
  • *
  • Puntos: 175
  • Mensajes: 152
  • Sexo: Masculino
  • Evite los virus. Hierva el ordenador antes de usar
    • Ver Perfil
Respuesta #10 en: Enero 31, 2013, 12:17:18 am
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.
 


Desconectado Mr.Dudas

  • Asiduo
  • *
  • Puntos: 175
  • Mensajes: 152
  • Sexo: Masculino
  • Evite los virus. Hierva el ordenador antes de usar
    • Ver Perfil
Respuesta #11 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?

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.
 


Desconectado Texic

  • Moderadores globales
  • Legendario
  • *
  • Puntos: 1213
  • Mensajes: 2.158
  • Agradecido: 3 veces
  • Sexo: Masculino
  • I Have The Fire!
    • Ver Perfil
Respuesta #12 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




 


Desconectado Mr.Dudas

  • Asiduo
  • *
  • Puntos: 175
  • Mensajes: 152
  • Sexo: Masculino
  • Evite los virus. Hierva el ordenador antes de usar
    • Ver Perfil
Respuesta #13 en: Febrero 27, 2013, 11:25:30 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.
 


Desconectado Texic

  • Moderadores globales
  • Legendario
  • *
  • Puntos: 1213
  • Mensajes: 2.158
  • Agradecido: 3 veces
  • Sexo: Masculino
  • I Have The Fire!
    • Ver Perfil
Respuesta #14 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