C: Partir un fichero en varios bloques
Partir un fichero en varios bloques de un tamaño prefijado
Lenguaje: C (compilador: Turbo C)
Categoría: Ficheros
/* Fuente procedente de ErrorDeSintaxis.es */
/* Partir un fichero en varios bloques de un */
/* tamaño prefijado */
/* Compilador: Turbo C */
/* Nivel: Básico */
/* Disponible desde 17/08/2011 */
/* Aportado por Nacho */
/* Autor original: Nacho Cabanes */
#include <stdio.h> #include <stdlib.h> int main() { FILE *entrada, *salida; char nombreEntrada[200], nombreSalida[200]; long contador=0, fichActual=0, tamanyo; char byteLeido; printf("Nombre del fichero?"); gets(nombreEntrada); printf("Tamanyo de cada bloque?"); scanf("%ld",&tamanyo); entrada = fopen(nombreEntrada, "rb"); if (salida == NULL) { puts("No se ha podido crear!"); exit(1); } sprintf(nombreSalida, "%s.%ld", nombreEntrada, fichActual); salida = fopen(nombreSalida, "wb"); if (salida == NULL) { puts("No se ha podido crear!"); exit(2); } while (!feof(entrada)) { byteLeido = fgetc(entrada); fputc(byteLeido, salida); contador++; if (contador == tamanyo) { fclose(salida); sprintf(nombreSalida, "%s.%ld", nombreEntrada, fichActual); salida = fopen(nombreSalida, "wb"); if (salida == NULL) { puts("No se ha podido crear!"); exit(2); } contador = 0; fichActual ++; } } return 0; }