本文整理汇总了C++中StringTable::hasString方法的典型用法代码示例。如果您正苦于以下问题:C++ StringTable::hasString方法的具体用法?C++ StringTable::hasString怎么用?C++ StringTable::hasString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StringTable
的用法示例。
在下文中一共展示了StringTable::hasString方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: loadFromStream
bool LocalizedString::loadFromStream(std::istream& in_Stream, const uint32_t subHeader,
const bool withHeader, uint32_t& bytesRead,
const bool localized, const StringTable& table,
char* buffer)
{
if (withHeader)
{
uint32_t subRecName = 0;
//read header
in_Stream.read((char*) &subRecName, 4);
bytesRead += 4;
if (subRecName!=subHeader)
{
UnexpectedRecord(subHeader, subRecName);
return false;
}
}//if with header
//subrecord's length
uint16_t subLength = 0;
in_Stream.read((char*) &subLength, 2);
bytesRead += 2;
if (localized)
{
if (subLength!=4)
{
std::cout << "Error: sub record " << IntTo4Char(subHeader)
<< " has invalid length (" << subLength
<< " bytes). Should be four bytes.\n";
return false;
}
//read value
in_Stream.read((char*) &m_Index, 4);
bytesRead += 4;
if (!in_Stream.good())
{
std::cout << "LocalizedString::loadFromStream: Error while reading subrecord "
<< IntTo4Char(subHeader)<<"!\n";
return false;
}
//treat index zero as empty string, some subrecords allow zero as index
if (m_Index==0)
{
m_String.clear();
m_Type = lsIndex;
return true;
}//if zero
if (!table.hasString(m_Index))
{
std::cout << "LocalizedString::loadFromStream: table has no entry for index "<<m_Index<<"!\n";
return false;
}
m_String = table.getString(m_Index);
m_Type = lsIndex;
}
else
{
//unlocalized (plain string)
if (subLength>511)
{
std::cout <<"Error: subrecord "<<IntTo4Char(subHeader)<<" is longer than 511 characters!\n";
return false;
}
//read string
memset(buffer, 0, 512);
in_Stream.read(buffer, subLength);
bytesRead += subLength;
if (!in_Stream.good())
{
std::cout << "Error while reading subrecord "<<IntTo4Char(subHeader)<<"!\n";
return false;
}
m_String = std::string(buffer);
m_Type = lsString;
}
return true;
}