资源简介
基于Huffman树的文件压缩C源码,支持大文件边读取边压缩。

代码片段和文件信息
//进行文件解压。 。。。。
#include “../HuffmanTree.h“
#define NAMESIZE 500
void rezip(const char*s)
{
//s 为压缩文件的地址和文件名。
printf(“进行文件解压\n“);
FILE*pr*pw;
int ai=0jn=256m=2*n-1;UInt32 w[256];
HuffmanCode HChc;HuffmanTree HT;
char rezipname[NAMESIZE]=“re“;
i=0;
while(s[i]!=‘.‘){rezipname[2+i]=s[i];i++;}
rezipname[2+i]=‘.‘;i++;
pr=fopen(s“rb“);
if(!pr){
printf(“文件打开失败!“);exit(1);
}
j=0;a=fgetc(pr);
while(j<4){
rezipname[2+i]=a;if(j<3)a=fgetc(pr);j++;i++;
}
HT=(HuffmanTree)malloc(sizeof(HTNode)*(m+1));
HT[0].weight=0;HT[0].parent=0;HT[0].lchild=0;HT[0].rchild=0;
for(i=1;i<=n;i++){
HT[i].weight=0;//此时不需要权重,所以可以随便赋值。
HT[i].lchild=0;
HT[i].rchild=0;
}
for(i=n+1;i<=m;i++)
{
HT[i].weight=0;//此时不需要权重,所以可以随便赋值。
fread(&a21pr);HT[i].lchild=a;HT[a].parent=i;
fread(&a21pr);HT[i].rchild=a;HT[a].parent=i;
}
HT[m].parent=0;
//此时HT为霍夫曼树,
int gm=0;
char aa[80000]b[8];int x[10000]d;a=fgetc(pr);
/*aa和b先开辟一定的内存空间。先将文件写到内存里 然后再写到文件里。 所以只能解压比较小的文件。 */
while(!feof(pr))
{
for(int i=0;i<8;i++){
if(a){b[7-i]=48+a%2;a=a/2;}
else b[7-i]=‘0‘;
}
for(int i=0;i<8;i++)
aa[8*j+i]=b[i];
j++;d=a;
a=fgetc(pr);
}
for(i=0;i<8;i++)if(a){b[7-i]=48+a%2;a=a/2;}else break;
for(int k=0;k aa[8*j-8+k]=b[8-i+k];
// for(;i<7;i++)aa[8*j-8+i]=‘0‘;
aa[8*j-8+i]=‘0‘;aa[8*j-8+i+1]=‘#‘;
//下面将aa所存的编码解密
Rewin(HTaaxngm);
FILE *fw;
fw=fopen(rezipname“wb“);
for(int i=0;i {x[i]=x[i]-1;fwrite(x+i11fw);}
fclose(fw);fclose(pr);
printf(“解压成功!\n“);
}
int main()
{
const char*str2=“zip123.txt“;
rezip(str2);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3433 2015-11-16 17:23 HuffmanZip\HuffmanTree.h
文件 1823 2015-11-24 19:32 HuffmanZip\unzip_2.cpp
文件 3148 2015-11-24 19:32 HuffmanZip\zip_2.cpp
目录 0 2017-07-14 22:39 HuffmanZip
----------- --------- ---------- ----- ----
8404 4
- 上一篇:避障小车原理图
- 下一篇:国科大模式识别与机器学习考题总结(详细答案)
相关资源
- 兰勃托地图投影VC源码
- 易语言zc源码易语言收银系统源码易语
- 易语言C源码易语言S源码易语言远程控
- Huffman Compress 霍夫曼编码 压缩 解压缩
- zlc源码众利模式.zip
- nc源码含unix、windows版本
- STM 32 仿三菱PLC源码
- 薛毅《统计建模与R软件》各章节R源码
- 串口调试助手VC源码
- 基于51单片机的智能抢答器+C源码+原理
- 车型识别系统vc源码opencv
- 基于Huffman编码的压缩和解压缩小软件
- cc攻击源码
- 运动车辆检测跟踪系统vc源码opencv
- SM9算法测试VC项目源码
- 基于LIS3DH的简易倾角仪C源码
- Office 文件压缩
- 车牌识别系统vc源码基于opencv
- ASN1编码文档及ASN1C源码例程
- huffman编码
- 基于RFID的学生门禁系统C源码、说明文
- 常用压缩算法源代码
- 指纹提取与识别系统VC源码opencv
- 春彩SSC源码带后台和开奖.zip
- swapIDC源码破解官方限制
- lis3dh三轴传感器计步实现C源码
- 开源商城B2B2C源码
- windows高级编程指南中文版+25个c源码案
- BrnShop开源网上商城2.1版本源码已改为
- MVC源码完整版
评论
共有 条评论