本文整理汇总了C++中WString::find方法的典型用法代码示例。如果您正苦于以下问题:C++ WString::find方法的具体用法?C++ WString::find怎么用?C++ WString::find使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WString
的用法示例。
在下文中一共展示了WString::find方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Replace
//
// Replace all occurrences of the string szOld with szNew
//
WString WString::Replace ( const wchar_t* szOld, const wchar_t* szNew, bool bSearchJustReplaced ) const
{
// Check if anything to replace first
size_t idx = 0;
if( ( idx = this->find ( szOld, idx ) ) == npos )
return *this;
size_t iOldLength = wcslen ( szOld );
size_t iNewLength = wcslen ( szNew );
WString strResult = *this;
do
{
strResult.replace ( idx, iOldLength, szNew );
if ( !bSearchJustReplaced )
idx += iNewLength;
}
while( ( idx = strResult.find ( szOld, idx ) ) != npos );
return strResult;
}
示例2: WStringToString
SharedPtr<FormatBase> FormatBase::loadImport(const String &filename, int architecture)
{
if(File::isPathExists(filename))
return ::loadImport(filename, architecture);
List<String> searchPaths;
String currentDirectory = WStringToString(Win32NativeHelper::get()->getCurrentDirectory());
searchPaths.push_back(currentDirectory.substr(0, currentDirectory.length() - 1));
#ifdef _WIN32
wchar_t *environmentBlock = Win32NativeHelper::get()->getEnvironments();
WString path;
while(*environmentBlock)
{
size_t equal = 0;
size_t currentLength = 0;
wchar_t *start = environmentBlock;
while(*environmentBlock ++)
{
if(*environmentBlock == L'=')
equal = currentLength;
currentLength ++;
}
if(equal >= 3 &&
WString::to_lower(start[0]) == L'p' &&
WString::to_lower(start[1]) == L'a' &&
WString::to_lower(start[2]) == L't' &&
WString::to_lower(start[3]) == L'h' &&
start[4] == L'=')
{
path.assign(start + equal + 2);
break;
}
}
int s = 0, e = 0;
while(true)
{
e = path.find(L';', e + 1);
if(e == -1)
break;
String currentPath = WStringToString(path.substr(s, e - s));
searchPaths.push_back(currentPath);
s = e + 1;
}
#endif
for(auto &i : searchPaths)
{
String path = File::combinePath(i, filename);
SharedPtr<FormatBase> result = ::loadImport(path, architecture);
if(!result)
{
if(path.substr(path.length() - 4).icompare(".dll") != 0)
{
path.append(".dll");
result = ::loadImport(path, architecture);
}
}
if(result.get())
return result;
}
return SharedPtr<FormatBase>(nullptr);
}