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
0