Título: leer fichero .txt Publicado por: raquelsg88 en 3 Junio 2013, 09:45 am Hola,
Tengo un fichero .txt y en su contenido una cadena de caracteres, por ejemplo: download_V12.mot. ¿Cómo puedo hacer para leer esa palabra y guardarla en una variable? unsigned char FL_UPDATE_FILE_NAME; //variable final en la que quiero que esté la palabra del .txt unsigned char version[30]; FILE *pFile; pFile = fopen("versiones.txt","r"); /* Abre el archivo .txt para lectura de texto */ fgets(version,30,pFile); while (feof(pFile) == 0) { FL_UPDATE_FILE_NAME = fgetc(pFile); } fclose(pFile); He probado con estas funciones pero no funciona. Si alguien me ayuda se lo agradezco! Título: Re: leer fichero .txt Publicado por: amchacon en 3 Junio 2013, 11:11 am ¿Quieres guardar una palabra en una sola variable?
Elimina el while y hazlo exactamente igual que con la versión Título: Re: leer fichero .txt Publicado por: raquelsg88 en 3 Junio 2013, 11:26 am En el fichero de texto tengo escrito: "download.mot"
Quiero guardar eso en una variable. No sé como hacer para que me coja cada caracter. Solo quiero que me guarde los 14 caracteres en este caso. FILE *pFile; unsigned char cadena[30]; unsigned char FL_UPDATE_FILE_NAME; pFile=fopen("version.txt","r"); fgets(cadena,30,pFile); FL_UPDATE_FILE_NAME=cadena; fclose(pFile); Esto no funciona, el problema creo que está con FL_UPDATE_FILE_NAME. Quiero que FL_UPDATE_FILE_NAME="download.mot", ya que voy a usar ese nombre de fichero para otra cosa. Título: Re: leer fichero .txt Publicado por: amchacon en 3 Junio 2013, 12:38 pm No me has entendido:
Código
Título: Re: leer fichero .txt Publicado por: raquelsg88 en 3 Junio 2013, 12:59 pm sigue sin funcionar, pero gracias por ayuda
Título: Re: leer fichero .txt Publicado por: amchacon en 3 Junio 2013, 13:04 pm sigue sin funcionar, pero gracias por ayuda Explicate más. ¿Que es lo que pasa cuando ejecutas el programa? ¿Que resultado obtienes?¿Cual es el contenido del archivo que has usado de prueba? Título: Re: leer fichero .txt Publicado por: raquelsg88 en 3 Junio 2013, 13:21 pm El programa en un principio era así:
#define FL_UPDATE_FILE_NAME "download.mot" void R_Fl_Flash_Update(void) { FRESULT res; uint16_t fl_file_rw_cnt; /* **** Mount the file system **** */ res = R_tfat_f_open(&fl_file, FL_UPDATE_FILE_NAME, (TFAT_FA_OPEN_EXISTING | TFAT_FA_READ)); etc, etc... } la funcion R_tfat_f_open es caracteristica del micro de renesas que estoy usando, pero es lo mismo que el fopen. Lo que quiero hacer es que no busque solo el fichero llamado "download.mot", para ello de un fichero .txt leerá lo que hay escrito, que será por ejemplo "update.mot" y después buscará y leerá el fichero con ese nombre y extensión. Título: Re: leer fichero .txt Publicado por: amchacon en 3 Junio 2013, 13:25 pm ¡¡, para ello de un fichero .txt leerá lo que hay escrito, que será por ejemplo "update.mot" y después buscará y leerá el fichero con ese nombre y extensión. En C estándar:Código
Doy por hecho de que el nombre está en la primera línea del archivo. Título: Re: leer fichero .txt Publicado por: raquelsg88 en 3 Junio 2013, 15:44 pm Nombre no es igual a "download.mot" por lo que nunca se abre ese archivo.
Gracias aun asi Título: Re: leer fichero .txt Publicado por: bemone en 3 Junio 2013, 16:01 pm Código
Por lo que entendí en el archivo download.mot tenes otro nombre de un archivo y luego lo queres abrir? Código
Título: Re: leer fichero .txt Publicado por: raquelsg88 en 3 Junio 2013, 16:10 pm Es no es lo que he preguntado, pero gracias
Título: Re: leer fichero .txt Publicado por: bemone en 3 Junio 2013, 16:13 pm fijate que modifique el comentario anterior.
Título: Re: leer fichero .txt Publicado por: raquelsg88 en 3 Junio 2013, 16:30 pm estoy trabajando en C y no entiendo los comandos que has puesto.
Yo tengo dos ficheros, uno es archivo.txt y dentro estará escrito el nombre de un fichero. Y el otro fichero es el escrito dentro del .txt. Es decir, en el mismo directorio tengo: - archivo.txt. En la primera linea esta escrito "download.mot", por ejemplo. - download.mot Quiero hacer esto porque no siempre se va a llamar igual el archivo que queremos abrir. Y una solución que se nos ha ocurrido es escribir en un .txt el nombre del fichero que queremos usar en ese momento. Título: Re: leer fichero .txt Publicado por: bemone en 3 Junio 2013, 16:38 pm Eso es lo que hace el codigo anterior, abre un archivo (En este caso NOMBRE_ARCHIVO) y guarda en el char el nombre del otro archivo.
Luego abre el archivo (archivo2) el cual tiene el nombre que tenia dentro el txt anterior. Busca la forma de pasarlo a C. Título: Re: leer fichero .txt Publicado por: amchacon en 3 Junio 2013, 16:55 pm El problema esta en el guion/espacio.
Eliminalos y haz la prueba. Título: Re: leer fichero .txt Publicado por: leosansan en 3 Junio 2013, 21:50 pm Yo tengo dos ficheros, uno es archivo.txt y dentro estará escrito el nombre de otro fichero. Y ( corrijo yo) en ese otro fichero esta escrito "download.mot". Es decir, en el mismo directorio tengo: - archivo.txt. En la primera linea esta escrito (corrijo yo) el nombre del otro fichero . - (corrijo yo) En el otro fichero está escrito "download.mot" Quiero hacer esto porque no siempre se va a llamar igual el archivo que queremos abrir. Y una solución que se nos ha ocurrido es escribir en un .txt, (amplio yo) o sea archivo.txt, (amplio yo) el nombre del otro fichero que queremos usar en ese momento. Con las puntualizaciones que he puesto tengo esta salida: Código
No sé si me he liado, si es así sorry. Pero la idea que capto es que tienes un fichero llamado archivo.txt en donde está escrito el nombre de otro fichero, que hay que leer mediante una variable, ya que lo iras cambiando, y a su vez en ese otro fichero tienes escrito algo, por ejemplo "download.mot". ¿No lo he entendido mal?. Si es como he supuesto, una solución rapidita, sin comprobaciones de que los ficheros existen y esas cosas -¡faltaría más haciéndolo yo! :laugh:- es la que te pongo a continuación y si es otra cosa ya me contaras con más detalles. Por cierto, en la realidad el fichero archivo.txt existe por lo que en lugar de abrirlo con la opción "w" se abriría con "r". Lo he hecho con "w" para comprobar que todo iba bien y que además pudieras ejecutar el código que te paso. Código
Funcionar, funciona pero no es el tema de ficheros mi fuerte. Seguro que alguien más curtido en el tema podrá colgar un código mejor. Pero, en fin, para que veas que lo que pretendes tiene solución. Saluditos! ... ..(http://st.forocoches.com/foro/images/smilies/ciao.gif) |