01/10/2018, 15:36
Viết chương trinh chia một file với kích thước chọn KB thành n file KB
đề :viết chương chia file nhưng minh khi chia file pdf ra sao ko ghép
lại dc, sum(kích thước chia) < kích thước ban đầu của file why???
đây code của mình ( có tham khảo ) ,mong a/c giúp với
// định dạng lai file con : filename.xxx00i 0<i<n =
char * Split_option(char *t)
{
char *p,*s;
int k;
s=strdup(t);
p=strrchr (s, '.');
if(p) k=p-s;
else k=strlen(s);
strncpy(s+k,".xxx",4);
return s;
}
// chia file
void Split_file(FILE *split, char *filename , size_t fixsize , char * buf )
{ int k,i=1;
FILE *f;
size_t numberread;
k=strlen(filename);
do
{
snprintf(filename +k,4,"%03d", i++);
numberread=fread(buf ,sizeof(char), fixsize , split);
f=fopen(filename, "wb");
fwrite(buf,numberread , sizeof (char), f);
fclose (f);
printf("file name creation %s : [%lu byte ]
",filename, numberread);
} while (numberread >= fixsize );
}
int main ( int arg , char * argv[])
{ size_t size;
char * buff, *filename;
if( arg <2 || arg> 3)
{
pr("false syntax ");
pr("Split file_name_div number[KB] ");
return 1;
}
fcr(f,argv[1],"rb");
fer(f);
size = (arg==2)?128:(size_t)(atol(argv[2]));
size<<=10;
buff=(char *) calloc(size, sizeof( char ));
if(!buff)
{
buff=(char*) calloc( 2048, sizeof( char));
if( !buff) { free( buff) ;return 2;}
}
filename=Split_option(argv[1]);
Split_file(f,filename, size , buff );
fclose (f);
free(buff);
}
kq chia file pdf 1000kb với size 100 kb thi thì chỉ có 3file ???
sai chỗ nhỉ?
Bài liên quan