Autor Tema: Copia de archivos en C...ayuda  (Leído 2788 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado lordmicro

  • PIC10
  • *
  • Mensajes: 6
Copia de archivos en C...ayuda
« en: 03 de Junio de 2011, 11:23:15 »
Hola maestros, lo q necesito es q cuando se copie el archivo de entrada al de salida y si se ha copiado bien me aparezca un mensaje diciendo q ha sido copiado.Gracias y un saludoo.
 Os pego el codigo:

/*
+-----------------------------------------------+
| COPIA DE UN FICHERO (SIMILAR AL COPY DEL DOS) |
+-----------------------------------------------+
Esteprogramacopiaunficheroaotrofichero.
Funcionalmente este programa es similar al copy del DOS o al cat del
UNIX. Si elfichero de salida es con, seestá haciendo un type del
DOS. Si elfichero de entrada es con, recuerdaque el carácter fin
de fichero se escribe con CTRL-Z en el DOS.
Lafunción strcpy()copiaelstring pasadocomo segundo
argumentoen elstring pasadocomo primerargumento. Lafunción
toupper() devuelve el carácter pasado como argumento en mayúscula.
*/
#include <stdio.h>/* printf (), gets (), fprintf (), stderr, EOF,
fopen (), fclose (), fgetc (), fputc (), NULL */
#include <conio.h> /* getch () */
#include <string.h> /* strcpy () */
#include <ctype.h> /* toupper () */
#define BOOLEAN int
#define TRUE1
#define FALSE0
#define ESC 27
#define ENTER '\r'
#define NUMMAXCARACTERES 255
void main (void)
{
BOOLEAN salir = FALSE;
char nombre_fichero_entrada[NUMMAXCARACTERES],
nombre_fichero_salida[NUMMAXCARACTERES];
FILE *pfe, *pfs; /* punteros a fichero de entrada y fichero de
salida resp. */
char ch;
while (! salir)
{
puts ("\n\nCOPIAR FICHERO CON EL SISTEMA DE FICHEROS DE ALTO
NIVEL:\n");
printf ("Introduzca nombre de fichero de entrada (ENTER o CON "
"para teclado): ");
gets (nombre_fichero_entrada);
if (*nombre_fichero_entrada == '\0')
strcpy (nombre_fichero_entrada, "con");
printf ("Introduzca nombre de fichero de salida (ENTER o CON "
"para pantalla): ");
gets (nombre_fichero_salida);
if (*nombre_fichero_salida == '\0')
strcpy (nombre_fichero_salida, "con");
if ((pfe = fopen (nombre_fichero_entrada, "r")) == NULL)
fprintf (stderr, "\nERROR: No es posible abrir el fichero de "
"entrada %s.\n", nombre_fichero_entrada);
else if ((pfs = fopen (nombre_fichero_salida, "w")) == NULL)
{
fprintf (stderr, "\nERROR: No es posible abrir el fichero "
"de salida %s.\n", nombre_fichero_salida);
fclose (pfe);
}
else
{
int c;
while ((c = fgetc (pfe)) != EOF)
fputc (c, pfs);
fclose (pfe);
fclose (pfs);
}
printf ("\n\n¿Desea copiar otro fichero (S o ENTER: Sí; N o "
"ESC: No)? ");
do
{
ch = getch ();
} while (ch != ENTER && toupper (ch) != 'S' &&
ch != ESC && toupper (ch) != 'N');
salir = ch == ESC || toupper (ch) == 'N';
}
}

Desconectado fabianjsm

  • PIC18
  • ****
  • Mensajes: 255
    • fabianjsm is on twitter
Re: Copia de archivos en C...ayuda
« Respuesta #1 en: 19 de Julio de 2011, 13:12:31 »
Te paso este ejemplo que además no es Borland-dependiente.
Para compilar con GCC: 'gcc -o copy copy.c'
De todos modos es ANSI C, no deberías tener problemas con tu compilador.
Espero que te sirva.
@fabianjsm is on twitter


 

anything