Tengo un problema con un programa que no encuentro la informacion

Iniciado por Fera Core, 11 Abril 2016, 00:51 AM

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

Fera Core

#10
Bueno en dev c neceitas un sistem( rename());  y la libreria windows .h
y poner abajo del sistem rename  usan:
gets(NombreArchivo);
strcat(NombreArchivo, ".txt");// ahora texto
strcat(RutaAbsoluta, NombreArchivo);

es la unica manera que pude abrir un archivo en devc pero la tarea era en turbo c++ , solo que no abre archivos en otras unidades externos solo de los discos locales
----------------------------------------------------------------

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>


void limpriarCadena(char cad[], int n) {

   for(int i = 0; i < n; i++) {

cad[i] = '\0';
   }
}

int main() {

   char Unidad[3];
   char Ruta[150];
   char RutaAbsoluta[150];
   char NombreArchivo[50];
   char c=' ';
   FILE *F,*N;


do {
clrscr();//limpiar la ubicacion cada vez que se cicle
limpriarCadena(Unidad, 2);
limpriarCadena(Ruta, 150);
limpriarCadena(RutaAbsoluta, 150);
limpriarCadena(NombreArchivo, 50);

printf("\n -Ingresa la letra de la unidad de tu dispositivo(C,D,F...):\n-> ");
scanf("%c", &Unidad[0]);
strcat(Unidad, ":\\");
strcpy(RutaAbsoluta, Unidad);

printf("\n -Ingresa la ruta del archivo(deja en blanco si esta en la raiz):\n-> %s", Unidad);
while(getchar()!='\n');
gets(Ruta);
if(strlen(Ruta)!=0) {

   strcat(RutaAbsoluta, Ruta);
   strcat(RutaAbsoluta, "\\");
}

printf("\n Ingresa el nombre del archivo de word (doc) que desea abrir: \n");
gets(NombreArchivo);
strcat(NombreArchivo, ".doc");
strcat(RutaAbsoluta, NombreArchivo);
     

F = fopen(RutaAbsoluta, "r");

if(F == NULL) {

      printf("\n\n Error al abrir el archivo! Intenta de nuevo...\nPresiona enter para continuar...");
while(getchar()!='\n');
     }

 } while(F == NULL);

 clrscr();

 printf("\n  Texto en:  %s\n\n", RutaAbsoluta);  // imprime la ruta del archivo
N = fopen("Respaldo.txt", "w");

printf("El respaldo se creo correctamente ");
while(!feof(F)) {

      c = getc(F);
fprintf(N,"%c",c);
      printf("%c", c);

}
      puts("Copia de seguridad creada con exito");
      fclose(F);//imprime el contenido del archivo
      fclose(N);
      //empieza respaldo




getch();

return 0;
}








MOD EDIT: Usar etiquetas GeSHi y no hacer doble post.

MAFUS

La verdad: te has complicado muchísimo a la hora de adquirir la ruta del archivo.
¿No puedes hacer que el usuario la entre de una vez?

Fera Core


MAFUS

Pero la ruta la puedes escribir directamente y no tener que ir trozo a trozo. Así podrias usar hasta las rutas relativas y el programa en script msdos o de powershell.