Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/02/2015, 07:29
andoporto
 
Fecha de Ingreso: junio-2013
Mensajes: 20
Antigüedad: 10 años, 10 meses
Puntos: 0
dividir un archivo binario en 3

Hola gente una pregunta, en el enunciado dice "que divida en tres nuevos archivos binarios (<"archal1">, <"archal2"> y
<"archal3">) el archivo anterior, tomado los primeros 30 para el primer archivo, los
siguientes 30 para el segundo y los restantes para el tercero."
Yo pense hacer lo con:



fseek(pf,29,0)

//va del principio a la posicion 29


fseek(pf,51,1)

//de la posicion actual a la 59
Código:

fseek(pf,60,2)

//de la 60 hasta que termine el archivo
tengo duda para grabar los demas archivos, como hago? están bien los fseek?
de base voy a usar la siguiente codificacion:


Código:
Código:
#‎include‬ <stdio.h>
#include <stdlib.h>
‪#‎define‬ MSG 1

int abrir_archivo (FILE**, char *, char *, int);
void mostrarReg(vect);

int main(void)
{
int i;
int vect;
FILE *archi;
archi=fopen("archalea.dat","w+b");
if(!archi)
{
puts("imposible abrir archivo");
}
else
{
 printf("90 numeros aleatorios del 0 al 99\n\n");
 for(i=0; i<89; i++)
 {
    vect=rand() % 1000;
   fwrite(&vect,sizeof(vect),1,archi);
 }
fclose(archi);

archi=fopen("archalea.dat","r+b");
if(archi)
{
int conta=0;
while (!feof(archi))
{

printf("\n posicion= %d Numero : %d", conta+1,vect);
conta++;
fread(&vect, sizeof(vect),1, archi);
//acá tengo que poner los fseek?
}
}
else
{
puts("imposible abrir archivo");
}

}
close(archi);
printf("\n");
return 0;
}