Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: andoporto en 16 Febrero 2015, 13:10 pm



Título: dividir un archivo binario en 3
Publicado por: andoporto en 16 Febrero 2015, 13:10 pm
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:

Código:
fseek(pf,29,0)
//va del principio a la posicion 29
Código:
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:
#‎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;
}