本文整理汇总了C++中KString::size方法的典型用法代码示例。如果您正苦于以下问题:C++ KString::size方法的具体用法?C++ KString::size怎么用?C++ KString::size使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KString
的用法示例。
在下文中一共展示了KString::size方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: InitByDataFile
BOOL KStringManager::InitByDataFile(const char* filename , BOOL bCover)
{
KTabfileLoader& loader = KTabfileLoader::GetInstance();
KTabFile2* fileReader = loader.GetFileReader(filename);
if(!fileReader)
{
AssertFile(filename);
return FALSE;
}
BOOL nRetCode = FALSE;
int stringID = 0;
char str[1024] = {0};
KString<1024> dstStr;
while(TRUE)
{
int nRet = fileReader->ReadLine();
if(nRet == -1) { loader.CloseFileReader(fileReader); return FALSE; }
if(nRet == 0) break;
nRetCode = fileReader->GetInteger(0 , 0, &stringID);
if(!nRetCode) continue;
nRetCode = fileReader->GetString(1, "", str, 1024);
if(!nRetCode) continue;
if (!stringID)
{
continue;
}
const char* ps = TranslateSourceMessage<1024>(str, dstStr);
int len = dstStr.size();
if (len == 0) dstStr = "";
if(len < 0 || len >= 1024)
{
Log(LOG_ERROR, "error: string %u has a length %d exceed 1024 in file %s", stringID, len, filename);
continue;
}
if(bCover)
{
const char* oldStr = this->GetStringByID(stringID);
if(!oldStr || strcmp(oldStr, ps) != 0)
{
char* strValue = KBuffer64k::WriteData(ps, len+1);
m_StringHashMap[stringID] = strValue;
}
}
else
{
char* strValue = KBuffer64k::WriteData(ps, len+1);
m_StringHashMap[stringID] = strValue;
}
}
loader.CloseFileReader(fileReader);
return TRUE;
}