leer fichero .txt

Iniciado por raquelsg88, 3 Junio 2013, 09:45 AM

0 Miembros y 2 Visitantes están viendo este tema.

raquelsg88

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!

amchacon

¿Quieres guardar una palabra en una sola variable?

Elimina el while y hazlo exactamente igual que con la versión
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

raquelsg88

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.

amchacon

#3
No me has entendido:

FILE *pFile;
unsigned char version[30];
unsigned char FL_UPDATE_FILE_NAME[15];
 
pFile=fopen("version.txt","r");

fgets(version,30,pFile);
fgets( FL_UPDATE_FILE_NAME,14,pFile);

fclose(pFile);
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

raquelsg88

sigue sin funcionar, pero gracias por ayuda

amchacon

Cita de: raquelsg88 en  3 Junio 2013, 12:59 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?
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

raquelsg88

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.

amchacon

#7
Cita de: raquelsg88 en  3 Junio 2013, 13:21 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:

FILE *pFile;
char Nombre[256];

pfile = fopen("archivo.txt");
fgets(Nombre,255,pFile);
fclose(pfile);

pfile = fopen(Nombre); // Abrimos el archivo en cuestión


Doy por hecho de que el nombre está en la primera línea del archivo.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

raquelsg88

Nombre no es igual a "download.mot" por lo que nunca se abre ese archivo.

Gracias aun asi

bemone

#9
Código (cpp) [Seleccionar]
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
   ifstream archivo;
   string contenido;

   archivo.open("nombre.txt");
   archivo >> contenido;

   cout << contenido;
   archivo.close();
   return 0;
}


Por lo que entendí en el archivo download.mot tenes otro nombre de un archivo y luego lo queres abrir?

Código (cpp) [Seleccionar]
#include <iostream>
#include <fstream>

using namespace std;
#define NOMBRE_ARCHIVO "download.mot"

int main()
{
   ifstream archivo, archivo2;
   char nomArchivo2[256];

   archivo.open(NOMBRE_ARCHIVO);
   archivo >> nomArchivo2;
   archivo.close();

   cout << nomArchivo2;
   archivo2.open(nomArchivo2);
   archivo2.close();

   return 0;
}
Odio los tipos de variable de Windows.