示例#1
0
		//Firstly get the dictionary from file
		void HuffmanEncoder::BuildFromTermFrequency(const char* filename)
		{
			FILE* fid;
			fid = fopen(filename, "r");
			if (fid)
			{
				char sz_label[kMaxWordSize];
				dict_ = new (std::nothrow)Dictionary();
				assert(dict_ != nullptr);
				//while (fscanf_s(fid, "%s", sz_label, kMaxWordSize) != EOF)
				while (fscanf(fid, "%s", sz_label) != EOF)
				{
					HuffLabelInfo info;
					int freq;
					fscanf(fid, "%d", &freq);
					dict_->Insert(sz_label, freq);
				}
				fclose(fid);

				BuildHuffmanTreeFromDict();
			}
			else
			{
				multiverso::Log::Error("file open failed %s", filename);
			}
		}
示例#2
0
void HuffmanEncoder::BuildFromTermFrequency(const char* filename)
{
	FILE* fid;
	fopen_s(&fid, filename, "r");
	if (fid)
	{
		char sz_label[MAX_WORD_SIZE];
		m_dict = new Dictionary();

		while (fscanf_s(fid, "%s", sz_label, MAX_WORD_SIZE) != EOF)
		{
			HuffLabelInfo info;
			int freq;
			fscanf_s(fid, "%d", &freq);
			m_dict->Insert(sz_label, freq);
		}
		fclose(fid);

		BuildHuffmanTreeFromDict();
	}
	else
	{
		printf("file open failed %s", filename);
	}
}
示例#3
0
		void HuffmanEncoder::BuildFromTermFrequency(Dictionary* dict)
		{
			dict_ = dict;
			BuildHuffmanTreeFromDict();
		}