
Contents
Introduction
This version of file encoder and decoder program is based on the Huffman
coding method. It explicitly demonstrates the details of the files during the
encoding and decoding. The algorithm is encapsulated in a class
En_Decode
by the standard C++ language. Here is a demonstration
project for the class.
Using the code
This class is implemented by standard C++, so it is very easy to use.
- Create an MFC application program as usual.
- Add the source file En_Decode.cpp and En_Decode.h to the project.
- Add the header file to your project by:
Define your own coder object, such as:
- Use the member function of the class to set the source file name and
destination encoded file name, then call
Encode()
to encode the
source file.
In the same way, we can decode the encoded files to exactly the source
file.
Construction
En_Decode | Constructs a En_Decode
object. |
File Name Functions
SetInputFileName | Set the input file name. |
SetOutputFileName | Set the output file name. |
GetExtName | Get the ext name of the encoded file when
decoding. |
Paraneter Functions
GetMinFreq | Get the minimum frequency of the symbols in the source
file. |
GetMaxFreq | Get the maximum frequency of the symbols in the source
file. |
GetFreq(idx) | Get the frequency value of a symbol in the source
file. |
GetActiveSymbols | Get the number of active symbols in the source file. |
GetActualDataLength | Get the bytes number of the encoded file not including
head. |
GetUncodedFileLength | Get the length of the source file. |
GetEncodedFileCodeLength | Get the average code length of the encoded file. |
GetSourceFileEntropy | Get the entropy of the source file. |
Thanks to...
Derek Lakin for his help with CTabCtrlSSL
in the demo
project.
Contacting the Authors
This is the first time I share my code here. It is done in a hurry, so
exception handling is ignored. Any one who is interested in it can enhance it
freely, and please let me know about any improvement, thanks!
I am a junior student in Huangzhong University of Science and Technology,
China. I am interested in C++ and MFC, and any coding project. I am glad to
share my codes here with any one, though it is not that good.
Please contact me via email (zxt0123@163.com).
I am a junior student in Huangzhong University of Science and Technology, China. I am interested in C++ and MFC, and any coding project.
I am glad to share my codes here with any one, though it is not that good. Please contact me via email (zxt0123@163.com).