Título: Busqueda desde txt en C++ Publicado por: cassiel83 en 3 Abril 2012, 17:10 pm Buenas tardes a todos tengo un problema con un programa que lee desde un listado txt los nombres de unos archivos, luego llama a una funcion que intenta abrirlos uno a uno para considerar si existen o no.
El problema es que si escribo directamente el nombre del archivo en el programa lo encuentra, pero si lo lee desde el listado, lo mete en un string y se lo pasa a la función no lo hace. Alguna idea de donde puede estar el fallo?. Gracias de antemano El listado tiene esta forma: Código: arc_2012041 y el programa es este: Código: #include <stdio.h> Título: Re: Busqueda desde txt en C++ Publicado por: satu en 3 Abril 2012, 17:49 pm Hola
Ahora estoy en clase y no puedo ver bien el código (en estas pantallas se ve fatal y no puedo probarlo), pero no veo nada raro, lo único que se me ocurre es que escribas las extensiones de los archivos en el listado. Si sigues con problemas intentaré verlo luego en casa o que alguien más entre y lo vea. Saludos Título: Re: Busqueda desde txt en C++ Publicado por: cassiel83 en 3 Abril 2012, 17:58 pm Hola, gracias. En mi listado completo si que aparecen las extensiones de los archivos, y aun asi falla
Título: Re: Busqueda desde txt en C++ Publicado por: durasno en 3 Abril 2012, 18:02 pm Hola! si tu listado tiene esta forma:
arc_2012041 arc_2012042 arc_2012043 arc_2012044 lo mas probable que el error sea al usar fgets(archivo1, 30, listado). fgets lee hasta encontrar el ENTER el cual tambien es almacenado en el arreglo archivo1 No es lo mismo abrir una cadena como "arc_2012041" que "arc_2012041\n".. Con fgets el salto de linea tambien pertenec al string Te combiene usar fscanf o generar un ciclo con fgetc Saludos Título: Re: Busqueda desde txt en C++ Publicado por: cassiel83 en 3 Abril 2012, 18:39 pm Tenias razon habia que usar fscanf. Al final lo he puesto asi:
Código: while (fscanf(listado,"%s", archivo1)!=EOF) Muchas gracias ;-) Título: Re: Busqueda desde txt en C++ Publicado por: cassiel83 en 4 Abril 2012, 17:29 pm Otra vez me he atascado :huh:, ahora el problema es que tengo el listado:
Código: arc_201201.txt;10;20;30 y no encuentro la manera de pasar los campos separados por el ";" a una variable para luego pasarla a la función. he intentado hacerlo con un bucle con fgetc para que lea hasta encontrar el separador o el salto de linea pero esta funcion devuelve solo un caracter a la vez. alguna idea de como podría hacerlo. Gracias y saludos. Título: Re: Busqueda desde txt en C++ Publicado por: durasno en 4 Abril 2012, 18:10 pm Hola! ahi ya se complica un poco mas. Lo que se me ocurre en este momento es que usas la funcion strtok. Te dejo un link para q veas el uso de strtok
http://c.conclase.net/librerias/index.php?ansifun=strtok#inicio Cualquier cosa segui preguntando, saludos Título: Re: Busqueda desde txt en C++ Publicado por: cassiel83 en 4 Abril 2012, 20:08 pm Hola, ya lo he resuelto gracias a tu ayuda, funciona lo mas importante, ahora solo falta pulirlo, es cuestión de modificar un poco el bucle.
muchas gracias ;D me quedó así: Código: #include <stdio.h> Título: Re: Busqueda desde txt en C++ Publicado por: durasno en 4 Abril 2012, 20:51 pm Perfecto!! solo basta adaptarlo a tu necesidad y listo :)
Saludos |