kesaan
谁来帮咱写出这个压缩程序?

如下面的:

int NLZSS_11h_uncompress(char *inFileName,char *outFileName)

{

FILE *ifp = fopen(inFileName,"rb");

unsigned char FileID = getc(ifp);

if(FileID != 0x11)

{

fclose(ifp);

return -1;

}

unsigned int outFileSize = 0;

fread(&outFileSize,3,1,ifp);

fseek(ifp,0,2);

unsigned int inFileSize = ftell(ifp)-4;

fseek(ifp,4,0);

unsigned char *inBuffer = new unsigned char[inFileSize];

fread(inBuffer,inFileSize,1,ifp);

fclose(ifp);

unsigned char *outBuffer = new unsigned char[outFileSize];

unsigned char *current_pos = outBuffer;

memset(outBuffer,0,outFileSize);

int backRefLength = 0,

outputLength = 0,

decomp_size = 0,

mask = 0,

count = 0;

int flags = 0,

i = 0;

int r0 = 0,//待解压文件读取指针

r1 = 0,//解压文件写入指针

r2 = 0,//解压大小

r3 = 0,//复制长度

r4 = 0,//LZSS的控制位计数器

r5 = 0,

r6 = 0,

r7 = 0,//作用未知,貌似总是1

r12 = 0,//回溯距离

r14 = 0;//LZSS的ID字节

for( ; ; )

{

if(r4 == 0)

{

flags = inBuffer[r0++];

r4 = 8;

}

if( (flags&0x80) )//解压数据

{

r5 = inBuffer[r0];

if( r5&0xE0 )//r5高三位不全为0

{

r6 = 1;

r3 = r6 + (r5>>4);//复制长度

r0++;

r5 &= 0x0F;

r12 = r5<<8;

r6 = inBuffer[r0++];

r5 = r6 | r12;

r12 = r5 + 1;//回溯距离

}

else//r5高三位全为0

{

r0++;

r6 = r5&0x0F;

r6 <<= 4;

if( r5&0x10 )//第5位不为0

{

r6 <<= 8;

r5 = inBuffer[r0++];

r6 += (r5<<4);

r6 += 0x100;

r6 += 0x11;

r5 = inBuffer[r0];

r3 = r6 + (r5>>4);//复制长度

r0++;

r5 &= 0x0F;

r12 = r5<<8;

r6 = inBuffer[r0++];

r5 = r6 | r12;

r12 = r5 + 1;//回溯距离

}

else

{

r6 += 0x11;

r5 = inBuffer[r0];

r3 = r6 + (r5>>4);//复制长度

r0++;

r5 &= 0x0F;

r12 = r5<<8;

r6 = inBuffer[r0++];

r5 = r6 | r12;

r12 = r5 + 1;//回溯距离

}

}

r1 += r3;

for( ;r3 > 0;r3--)

{

*current_pos++ = outBuffer[current_pos-outBuffer - r12];

}

}

else//直接输出

{

*current_pos++ = inBuffer[r0++];

r1++;

}

if(r1 == outFileSize)

goto END;

flags <<= 1;r4--;

}

END: FILE *ofp = fopen(outFileName,"wb");

fwrite(outBuffer,outFileSize,1,ofp);

_fcloseall();

delete [] inBuffer;

delete [] outBuffer;

return 0;

}

更据上面的东东=。=写出想应的压缩程序,白托咯~~~~~~~~~~~~~~=1012=

轻舟过
本帖最后由
展开Biu

本帖最后由 轻舟过 于 2012-5-11 20:48 编辑

好奇怪的需求

[查看全文]