dividir un archivo binario en 3

Iniciado por andoporto, 16 Febrero 2015, 13:10 PM

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

andoporto

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
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:

#‎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;
}