51 LDEBUG <<
"DictionaryData::loadBinaryFile" << file;
52 if( !QFileInfo::exists(file.c_str()))
55 std::string mess =
"DictionaryData::loadBinaryFile file ";
56 mess.append(file).append(
" not found!");
57 throw( std::logic_error( mess ) );
59 uint64_t dataSize = QFileInfo(file.c_str()).size();
60 LDEBUG <<
"DictionaryData::loadBinaryFile data size: " << dataSize;
61 m_data =
new unsigned char [dataSize];
64 std::string mess =
"DictionaryData::loadBinaryFile memory allocation error";
65 throw( std::logic_error( mess ) );
69 FILE *dataFile = fopen(file.c_str(),
"rb");
72 LIMA_EXCEPTION(
"DictionaryData::loadBinaryFile error cannot open data file"
75 uint64_t readSize = fread(m_data, 1, dataSize, dataFile);
77 if (readSize != dataSize)
79 std::string mess =
"DictionaryData::loadBinaryFile totalDataReadSize != _dataSize ";
80 throw( std::logic_error( mess ) );
84 unsigned char* p=m_data;
86 m_entriesAddr.resize(nbEntries);
88 for (vector<unsigned char*>::iterator entryItr=m_entriesAddr.begin();
89 entryItr!=m_entriesAddr.end();
102 LDEBUG <<
"read " << nbEntries <<
" entries";
106 m_lingPropertiesAddr.resize(nbLingProp);
107 for(vector<unsigned char*>::iterator lingItr=m_lingPropertiesAddr.begin();
108 lingItr!=m_lingPropertiesAddr.end();
115 LDEBUG <<
"read " << nbLingProp <<
" lingPropsSet";
116 Q_ASSERT((uint64_t)(p-m_data) == dataSize);