Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Yawin on July 19, 2011, 10:28:05 PM

Title: Tema ficheros
Post by: Yawin on July 19, 2011, 10:28:05 PM
Bueno, pues necesito hacer una función que mire todas las carpetas que tengo en la carpeta "Songs" y me cree un archivo con todas las canciones ordenadas alfabéticamente.

El tema es que no se cómo contar cuantas carpetas hay, para hacer un for como dios manda. ¿Alguien ya ha hecho algo así antes?
Title: Re: Tema ficheros
Post by: Rein (K´)ah Al-Ghul on July 19, 2011, 11:59:08 PM
Con un contador con cada archivo/directorio que encuentras...

http://wiki.bennugd.org/index.php?title=Glob
Title: Re: Tema ficheros
Post by: Drumpi on July 20, 2011, 12:51:18 AM
Creo que en el Thunder Blade del último concurso algo de eso hay, ficheros "filelist.inc" y "filelist.h", pero creo que no miran en subcarpetas. Eso sí, trae funciones para simplificarte la vida... si consigues entender cómo funcionan ^^U
Title: Re: Tema ficheros
Post by: Yawin on July 20, 2011, 09:08:38 AM
Quote from: Rein (K´)ah Al-Ghul on July 19, 2011, 11:59:08 PM
Con un contador con cada archivo/directorio que encuentras...

http://wiki.bennugd.org/index.php?title=Glob
Tiene buena pinta, lo voy a mirar. Gracias.
Title: Re: Tema ficheros
Post by: Drumpi on July 21, 2011, 04:51:42 PM
Splinter recomienda: DIROPEN, DIRREAD, DIRCLOSE.
Title: Re: Tema ficheros
Post by: Yawin on July 21, 2011, 08:26:43 PM
Al final, he hecho esto:

function carga_canciones()
private
int pf,i;
string canc,escritor,datos;
end
begin
pf=fopen("catalog.yaw",O_WRITE);
i=-2;
loop
canc=glob("songs/*");
if(canc!="")
if(canc!="." || canc!="..")
escritor="[Song="+i+"]";
fputs(pf,escritor);
/*datos=glob("songs/"+canc+"/*.mp3");
fputs(pf,datos);

datos=glob("songs/"+canc+"/*.avi");
fputs(pf,datos);

datos=glob("songs/"+canc+"/*.png");
fputs(pf,datos);*/
fputs(pf,canc);
escritor="[/Song="+i+"]";
fputs(pf,escritor);
end
else
break;
end
i++;
end

escritor="[/end]";
fputs(pf,escritor);
fclose(pf);
end
Title: Re: Tema ficheros
Post by: Drumpi on July 23, 2011, 12:23:47 PM
Veo algunos errores:

if(canc!="." || canc!="..")
Deberías usar un AND en lugar de OR, porque si te encuentra ".", como sí es distinto de ".." va a entrar en el IF.

Las funciones GLOB deberían tener cada una su propio bucle, ya que si cambias la cadena de búsqueda, esta se reinicia, y vas a obtener una y otra vez los primeros ficheros (si no recuerdo mal el funcionamiento).
Title: Re: Tema ficheros
Post by: Futu-block on July 23, 2011, 10:06:25 PM
interesante, listar canciones es algo que me interesa...
Title: Re: Tema ficheros
Post by: Yawin on July 28, 2011, 10:15:57 AM
No, si me dí cuenta, pero bah, he hecho una chapucilla y yasta.