⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 huffypacker.h

📁 有关huffman的程序对大家学习数据结构有好处但不是所有人都用得上
💻 H
字号:
// HuffyPacker.h: interface for the HuffyPacker class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_HUFFYPACKER_H__8794A12F_F48A_4566_93C7_7B081B65E32D__INCLUDED_)
#define AFX_HUFFYPACKER_H__8794A12F_F48A_4566_93C7_7B081B65E32D__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "ProgressListener.h"
#include "WinLog.h"

#define HUFFYMAJORVER 1
#define HUFFYMINORVER 0

class HuffyPacker  
{
public:
	HuffyPacker();
	virtual ~HuffyPacker();

	void SetUIHelpers(ProgressListener *NewListener, WinLog *NewLogTarget);
	void SetFileNames(const char *InFileName, const char *OutFileName);

	unsigned int Encode();
	unsigned int Decode();

	static unsigned int ThreadEncoder(void *Self);
	static unsigned int ThreadDecoder(void *Self);

private:
	char *InFN, *OutFN;
	ProgressListener *MyListener;
	WinLog *MyLog;

	void WritePackedHeader(FILE *TargetFile, unsigned int OrigSize);
	unsigned char ReadPackedHeader(FILE *SourceFile, unsigned int &RetOrigSize);

	FILE *Loggedfopen(const char *FileName, bool Read);
	unsigned int GetFileLength(const char *FileName);
};

#endif // !defined(AFX_HUFFYPACKER_H__8794A12F_F48A_4566_93C7_7B081B65E32D__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -