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:Creando el primer fichero archivo.txt y escribiendo el nombre del otro fichero
que es: el_otro_fichero
Leyendo del fichero archivo.txt el nombre del otro fichero
"el_otro_fichero"
Escribo en el_otro_fichero:
"download.mot"
Leyendo de el_otro_fichero
"download.mot"
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! - 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.#include <stdio.h>
int main()
{
FILE *fichero1,*fichero2;
char linea[81],leo[81],linea_sin_nulo[81];
puts ("Creando el primer fichero archivo.txt y escribiendo el nombre del otro fichero\n\
que es: el_otro_fichero\n\n");
fichero1 = fopen("archivo.txt", "wt");
fputs("\"el_otro_fichero\"", fichero1);
fclose(fichero1);
puts ("Leyendo del fichero archivo.txt el nombre del otro fichero\n\
");
fopen("archivo.txt", "r");
fgets(linea, 80, fichero1);
printf("%s\n\n",linea);
fclose(fichero1);
puts("Escribo en el_otro_fichero:");
puts("\"download.mot\"\n\n");
fichero2 = fopen("linea", "wt");
fputs("\"download.mot\"\n\n", fichero2);
fclose(fichero2);
puts ("Leyendo de el_otro_fichero");
fopen("linea", "r");
fgets(leo, 80, fichero2);
printf("%s\n",leo);
fclose(fichero2);
return 0;
}
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! ... ..