All pastes #501121 Raw Edit

Ficheros

public c v1 · immutable
·published 2007-05-21 21:36 UTC
rendered paste body
// LIBRERIAS#include <stdio.h>#include <stdlib.h>#include <conio.h>// MACROS#define TB "\t\t"#define TB3 "\t\t\t"// FUNCIONESint copifich(char *archivo1,char *archivo2);  // Copiar Fuente en Destinoint copiasincar(char *archivo1,char *archivo2,char caracter);int pintarfichero(char *archivo1);int contarcar(char *archivo1,char caracter);  // NO COGE EL PUTO CARACTERint concatfich(char *archivo1,char *archivo2);int creaymuestra(void);int pintar2fich(char *archivo1,char *archivo2);int guardaletras(void);int impalreves(char *archivo);int guardaymuestra(void);// Falta el de los articulos// MENU PRINCIPALmain(int argc, char *argv[]){	char ficherito1[256];	char ficherito2[256];	char c;	int opcion=0;	do	{		clrscr();		printf(TB" Funciones Relacion 9. (* = Sin Hacer).\n");		printf(TB" ---------------------------------------\n");		printf(TB" 0. Para SALIR.\n\n");		printf(TB" 1. Copiar Fuente en Destino.\n");		printf(TB" 2. Copiar Fuente en Destino sin Caracter.\n");		printf(TB" 3. Mostrar el contenido de un fichero.\n");		printf(TB" 4. Contar el n veces que existe ese caracter. *\n");		printf(TB" 5. Concatenar ficheros.\n");		printf(TB" 6. Gestor de fichas de alumnos.\n");		printf(TB" 7. Mostrar un fichero tras otro.\n");		printf(TB" 8. Guardar las teclas pulsadas en un fichero.\n");		printf(TB" 9. Imprimir un fichero de texto al reves.\n");		printf(TB"10. Guardar teclas pulsadas en un fichero y mostrarlas.\n");		printf("\n\n");		printf(TB" Introduzca Opcion: ");		scanf("%d",&opcion);		switch(opcion)		{			default: break;			case 0:							printf(" Eduardo Ortega Acosta.\n");							printf(" 1.CFGS. Desarrollo de Aplicaciones Informaticas.\n\n");							printf(" Gracias por utilizar este software.");							getch();							printf("\n");							exit(1);							break;			case 1:							printf(" 1er. Archivo: ");							scanf("%s",ficherito1); fflush(stdin);							printf(" 2do. Archivo: ");							scanf("%s",ficherito2); fflush(stdin);							if((copifich(ficherito1,ficherito2))==1)							{								printf("\n Comando completado correctamente.");								getch();							}							else							{									printf("\n Ocurrio un ERROR al copiar el archivo.\n");									printf("\n Comando no completado.");									getch();							}							break;			case 2:							printf(" 1er. Archivo: ");							scanf("%s",ficherito1); fflush(stdin);							printf(" 2do. Archivo: ");							scanf("%s",ficherito2); fflush(stdin);							printf(" Caracter: "); // NO SE PORKE NO LO COGE							scanf("%c",&c); fflush(stdin);							if((copiasincar(ficherito1,ficherito2,c))==1)							{								printf("\n Comando completado correctamente.");								getch();							}							else							{								printf("\n Ocurrio un ERROR al copiar sin el caracter.\n");								printf("\n Comando no completado correctamente.");								getch();							}							break;			case 3:							printf(" Indique Fichero: ");							scanf("%s",ficherito1);							if((pintarfichero(ficherito1))==1)							{								printf("\n Comando completado correctamente.");								getch();							}							else							{								printf("\n Ocurrio un ERROR al mostrar el contenido.\n");								getch();							}							break;			case 4:							printf(" Indique Fichero: ");							scanf("%s",ficherito1);              fflush(stdin);							printf(" Caracter: ");							scanf("%c",&c); fflush(stdin);							if((contarcar(ficherito1,c))==1)							{								printf("\n Comando completado correctamente.");								getch();							}							else							{								printf("\n Ocurrio un ERROR con el fichero indicado.");								getch();							}							break;			case 5:							printf(" El texto se concatenara sobre el primero. \n");							printf(" 1er. Fichero: ");							scanf("%s",ficherito1);							printf(" 2do. Fichero: ");							scanf("%s",ficherito2);							if((concatfich(ficherito1,ficherito2))==1)							{								printf("\n Comando completado correctamente.");								getch();							}							else							{								printf("\n Ocurrio un ERROR al concatenar los ficheros.");								getch();							}							break;			case 6:							if((creaymuestra())==1)							{								printf("\n Comando completado correctamente.");								getch();							}							else							{								printf("\n Ocurrio un ERROR al ejecutar la funcion.");							}							break;			case 7:							printf(" 1er. Fichero: ");							scanf("%s",ficherito1);							printf(" 2do. Fichero: ");							scanf("%s",ficherito2);							if((pintar2fich(ficherito1,ficherito2))==1)							{								printf("\n Comando completado correctamente.");								getch();							}							else							{								printf("\n Ocurrio un ERROR al ejecutar el comando.");								getch();							}							break;			case 8:							if((guardaletras())==1)							{								printf("\n Comando completado correctamente.");								getch();							}							else							{								printf("\n Ocurrio un ERROR al ejecutar el comando.");								getch();							}							break;			case 9:							printf(" Fichero a leer, con ext. txt: ");							scanf("%s",ficherito1);							if((impalreves(ficherito1))==1)							{								printf("\n Comando completado correctamente.");								getch();							}							else							{								printf("\n Ocurrio un ERROR al procesar el comando.");								getch();							}							break;			case 10:							if((creaymuestra())==1)							{								printf("\n Comando completado correctamente.");								getch();							}							else							{								printf("\n Ocurrio un ERROR al procesar el comando.");								getch();							}							break;		}	}while(opcion);	fcloseall();	return 0;}int copifich(char *archivo1,char *archivo2){	FILE *fichero,*fichero2;	char c;	if((fichero=fopen(archivo1,"a"))==NULL)		return -1;	if((fichero2=fopen(archivo2,"r"))==NULL)		return -1;	while((c=getc(fichero))!=EOF)		putc(c,fichero2);	fcloseall();	return 1;}int copiasincar(char *archivo1,char *archivo2,char caracter){	FILE *fichero,*fichero2;	char c;	if((fichero=fopen(archivo1,"r"))==NULL)		return -1;	if((fichero2=fopen(archivo2,"w"))==NULL)		return -1;	while((c=getc(fichero))!=EOF)	{		if(c==caracter)			c=NULL;		putc(c,fichero2);	}	caracter='\0';	fcloseall();	return 1;}int pintarfichero(char *archivo1){	FILE *fichero;	char c;	if((fichero=fopen(archivo1,"r"))==NULL)		return -1;	while((c=getc(fichero))!=EOF)		putc(c,stdout);	printf("\n\n");	printf(" .............................................");	printf("\n (Pulse cualquier tecla para volver al menu.)\n");	fclose(fichero);	getch();	return 1;}// NO COGE EL CARACTER Y NO SE PORQUEint contarcar(char *archivo1,char caracter){	FILE *fichero;	char c;	int ncaracter=0;	if((fichero=fopen(archivo1,"r"))==NULL)		return -1;	while((c=getc(fichero))!=EOF)		if(c==caracter)			ncaracter++;	fclose(fichero);	printf(" %d veces el caracter: %c ",ncaracter,caracter);	return 1;}int concatfich(char *archivo1,char *archivo2){	FILE *fichero,*fichero2;	char c;	if((fichero=fopen(archivo1,"a"))==NULL)		return -1;	if((fichero2=fopen(archivo2,"r"))==NULL)		return -1;	while((c=getc(fichero2))!=EOF)		putc(c,fichero);	fcloseall();	return 1;}int pintar2fich(char *archivo1,char *archivo2){	FILE *fichero,*fichero2;	char c;	if((fichero=fopen(archivo1,"r"))==NULL)		return -1;	if((fichero2=fopen(archivo2,"r"))==NULL)		return -1;	while((c=getc(fichero))!=EOF)		putc(c,stdout);	while((c=getc(fichero2))!=EOF)		putc(c,stdout);	fcloseall();	return 1;}int guardaletras(void){	FILE *fichero;	char c;	if((fichero=fopen("teclado.txt","w"))==NULL)		return -1;	while((c=getc(stdin))!=EOF)		putc(c,fichero);	return 1;}int impalreves(char *archivo1){	FILE *fichero;	char c;	int i; // Para el for	if((fichero=fopen(archivo1,"r"))==NULL)		return -1;	fseek(fichero,0,SEEK_END);	for(i=ftell(fichero);i!=0;i--)	{		c=getc(fichero);		fseek(fichero,-1,SEEK_CUR);		if(c=='\n')			fseek(fichero,-2,SEEK_CUR);		fseek(fichero,-1,SEEK_CUR);		putc(c,stdout);	}	fclose(fichero);	return 1;}int guardaymuestra(void){	FILE *fichero;	char c;	if((fichero=fopen("teclado2.txt","w"))==NULL)		return -1;	while((c=getc(stdin))!=EOF)		putc(c,fichero);	fclose(fichero);	if((fichero=fopen("teclado2.txt","r"))==NULL)	{		printf("\n OCurrio un ERROR al leer el fichero.");		getch();		return -1;	}	while((c=getc(fichero))!=EOF)		putc(c,stdout);	return 1;}int creaymuestra(){	FILE *fichero;	int op=0;	char nombre[15],apellidos[25],c;	do	{		clrscr();		printf(TB3" GESTION ALUMNOS.\n");		printf(TB3" -----------------\n");		printf(TB3" 0. Para SALIR.\n\n");		printf(TB3" 1. Crear ficha.\n");		printf(TB3" 2. Listar ficha.\n");		printf(TB3" 3. Eliminar ficha.\n\n");		printf(TB3" Opcion: ");		scanf("%d",&op);		switch(op)		{			default: break;			case 0:							printf(" Salir de la gestion de alumnos.\n");							getch();							break;			case 1:							if((fichero=fopen("alumnos.dat","ab+"))==NULL)								return -1;							printf(" Nombre: ");							scanf("%s",nombre); fflush(stdin);							printf(" Apellidos: ");							gets(apellidos); fflush(stdin);							fputs(nombre,fichero);							fputs(" ",fichero);							fputs(apellidos,fichero);							fputs("\n",fichero);							fclose(fichero);							break;			case 2:							if((fichero=fopen("alumnos.dat","rb"))==NULL)								return -1;							printf(" LISTADO ALUMNOS.\n");							printf(" ----------------\n");							while((c=getc(fichero))!=EOF)								putc(c,stdout);							getch();							fclose(fichero);							break;			case 3:							if((unlink("alumnos.dat"))==-1)							{								printf("\n Ocurrio un ERROR al eliminar el fichero.");								getch();								break;							}							printf("\n Fichero eliminado correctamente.");							getch();							break;		}	}while(op);  fclose(fichero);	return 1;}