?? lzss.h
字號(hào):
////////////////////////////////////////////////////////////////////////////////////////////////
// LZSS 壓縮程序
// 程序編寫:胡穎卓
// 編寫時(shí)間:1999年12月
////////////////////////////////////////////////////////////////////////////////////////////////
class LZSS
{
enum LZSSDATA
{
inMEM=1,inFILE
};
unsigned char *buffer;
int mpos,mlen;
int *lson,*rson,*dad;
unsigned char InType,OutType; //輸入輸出數(shù)據(jù)類型,指明是文件還是內(nèi)存中的數(shù)據(jù)
unsigned char *InData,*OutData; //輸入輸出數(shù)據(jù)指針
FILE *fpIn,*fpOut; //輸入輸出文件指針
unsigned long InDataSize; //輸入數(shù)據(jù)長(zhǎng)度
unsigned long InSize,OutSize; //已輸入輸出數(shù)據(jù)長(zhǎng)度
int GetByte(); //獲取一個(gè)字節(jié)的數(shù)據(jù)
void PutByte(unsigned char); //寫入一個(gè)字節(jié)的數(shù)據(jù)
void InitTree(); //初始化串表
void InsertNode(int); //插入一個(gè)表項(xiàng)
void DeleteNode(int); //刪除一個(gè)表項(xiàng)
void Encode(); //壓縮數(shù)據(jù)
void Decode(); //解壓數(shù)據(jù)
public:
LZSS(); //本類構(gòu)造函數(shù)
~LZSS(); //本類析構(gòu)函數(shù)
unsigned long Compress(unsigned char *,unsigned long,
unsigned char *); //內(nèi)存中的數(shù)據(jù)壓縮
unsigned long Compress(unsigned char *,unsigned long,
FILE *); //將內(nèi)存中的數(shù)據(jù)壓縮后寫入文件
unsigned long Compress(FILE *,unsigned long,FILE *); //壓縮文件
unsigned long UnCompress(unsigned char *,unsigned long,
unsigned char *); //內(nèi)存中的數(shù)據(jù)解壓
unsigned long UnCompress(FILE *,unsigned long,
unsigned char *); //將文件中的數(shù)據(jù)解壓后寫入內(nèi)存
unsigned long UnCompress(FILE *,unsigned long,FILE *); //解壓文件
};
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -