本文整理汇总了C++中string::CPtr方法的典型用法代码示例。如果您正苦于以下问题:C++ string::CPtr方法的具体用法?C++ string::CPtr怎么用?C++ string::CPtr使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类string
的用法示例。
在下文中一共展示了string::CPtr方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ExtractFilePath
string ExtractFilePath(const string &Path)
{
size_t p;
if (!FindLastSlash(p, Path))
p = 0;
size_t PathRootLen = GetPathRootLength(Path);
if (p <= PathRootLen && PathRootLen)
return string(Path.CPtr(), PathRootLen).Append(L'\\');
return string(Path.CPtr(), p);
}
示例2: ExtractIfExistCommand
bool ExtractIfExistCommand(string &strCommandText)
{
bool Result=true;
const wchar_t *wPtrCmd=PrepareOSIfExist(strCommandText);
// Во! Условие не выполнено!!!
// (например, пока рассматривали менюху, в это время)
// какой-то злобный чебурашка стер файл!
if (wPtrCmd)
{
if (!*wPtrCmd)
{
Result=false;
}
else
{
size_t offset = wPtrCmd-strCommandText.CPtr();
wchar_t *CommandText = strCommandText.GetBuffer();
wchar_t *PtrCmd = CommandText+offset;
// прокинем "if exist"
wmemmove(CommandText+(*CommandText==L'@'?1:0),PtrCmd,StrLength(PtrCmd)+1);
strCommandText.ReleaseBuffer();
}
}
return Result;
}
示例3: ExtractPathRoot
string ExtractPathRoot(const string &Path)
{
size_t PathRootLen = GetPathRootLength(Path);
if (PathRootLen)
return string(Path.CPtr(), PathRootLen).Append(L'\\');
else
return string();
}
示例4: RemoveLeadingSpaces
string& WINAPI RemoveLeadingSpaces(string &strStr)
{
const wchar_t *ChPtr = strStr;
for (; IsSpace(*ChPtr) || IsEol(*ChPtr); ChPtr++)
;
strStr.Remove(0,ChPtr-strStr.CPtr());
return strStr;
}
示例5: ReplaceBrackets
string ReplaceBrackets(const string& SearchStr,const string& ReplaceStr,RegExpMatch* Match,int Count)
{
string result;
size_t pos=0,length=ReplaceStr.GetLength();
while (pos<length)
{
bool common=true;
if (ReplaceStr[pos]=='$')
{
++pos;
if (pos>length) break;
wchar_t symbol=Upper(ReplaceStr[pos]);
int index=-1;
if (symbol>='0'&&symbol<='9')
{
index=symbol-'0';
}
else if (symbol>='A'&&symbol<='Z')
{
index=symbol-'A'+10;
}
if (index>=0)
{
if (index<Count)
{
string bracket(SearchStr.CPtr()+Match[index].start,Match[index].end-Match[index].start);
result+=bracket;
}
common=false;
}
}
if (common)
{
result+=ReplaceStr[pos];
}
++pos;
}
return result;
}
示例6: ExtractFileName
string ExtractFileName(const string &Path)
{
size_t p;
if (FindLastSlash(p, Path))
p++;
else
p = 0;
size_t PathRootLen = GetPathRootLength(Path);
if (p <= PathRootLen && PathRootLen)
return string();
return string(Path.CPtr() + p, Path.GetLength() - p);
}
示例7: PrepareHotKey
int PrepareHotKey(string &strHotKey)
{
int FuncNum=0;
if (strHotKey.GetLength() > 1)
{
// если хоткей больше 1 символа, считаем это случаем "F?", причем при кривизне всегда будет "F1"
FuncNum=_wtoi(strHotKey.CPtr()+1);
if (FuncNum < 1 || FuncNum > 24)
{
FuncNum=1;
strHotKey=L"F1";
}
}
else
{
// при наличии "&" продублируем
if (strHotKey.At(0) == L'&')
strHotKey += L"&";
}
return FuncNum;
}
示例8:
const wchar_t *GetPtrTitle() { return strTitle.CPtr(); }
示例9: WordDiv
inline const wchar_t* WordDiv(void) {return strWordDiv->CPtr();};
示例10: GetNextName
bool ScanTree::GetNextName(FAR_FIND_DATA_EX *fdata,string &strFullName)
{
if (!ScanItems.getCount())
return false;
bool Done=false;
Flags.Clear(FSCANTREE_SECONDDIRNAME);
for (;;)
{
ScanTreeData* LastItem = ScanItems.lastItem();
if (!LastItem->Find)
{
LastItem->Find = new FindFile(strFindPath);
}
Done=!LastItem->Find->Get(*fdata);
if (Flags.Check(FSCANTREE_FILESFIRST))
{
if (LastItem->Flags.Check(FSCANTREE_SECONDPASS))
{
if (!Done && !(fdata->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
continue;
}
else
{
if (!Done && (fdata->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
continue;
if (Done)
{
if(LastItem->Find)
{
delete LastItem->Find;
LastItem->Find = nullptr;
}
LastItem->Flags.Set(FSCANTREE_SECONDPASS);
continue;
}
}
}
break;
}
if (Done)
{
ScanItems.deleteItem(ScanItems.getCount()-1);
if (!ScanItems.getCount())
return false;
else
{
if (ScanItems.lastItem()->Flags.Check(FSCANTREE_INSIDEJUNCTION))
Flags.Clear(FSCANTREE_INSIDEJUNCTION);
CutToSlash(strFindPath,true);
if (Flags.Check(FSCANTREE_RETUPDIR))
{
strFullName = strFindPath;
apiGetFindDataEx(strFullName, *fdata);
}
CutToSlash(strFindPath);
strFindPath += strFindMask;
_SVS(SysLog(L"1. FullName='%s'",strFullName.CPtr()));
if (Flags.Check(FSCANTREE_RETUPDIR))
{
Flags.Set(FSCANTREE_SECONDDIRNAME);
return true;
}
return GetNextName(fdata,strFullName);
}
}
else
{
if ((fdata->dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY) && Flags.Check(FSCANTREE_RECUR) &&
(!(fdata->dwFileAttributes&FILE_ATTRIBUTE_REPARSE_POINT) || Flags.Check(FSCANTREE_SCANSYMLINK)))
{
string RealPath(ScanItems.lastItem()->RealPath);
AddEndSlash(RealPath);
RealPath += fdata->strFileName;
if (fdata->dwFileAttributes&FILE_ATTRIBUTE_REPARSE_POINT)
ConvertNameToReal(RealPath, RealPath);
//recursive symlinks guard
bool Recursion = false;
for (size_t i = 0; i < ScanItems.getCount() && !Recursion; i++)
Recursion = ScanItems.getItem(i)->RealPath == RealPath;
if (!Recursion)
{
CutToSlash(strFindPath);
strFindPath += fdata->strFileName;
strFullName = strFindPath;
strFindPath += L"\\";
//.........这里部分代码省略.........
示例11: StrToGuid
bool StrToGuid(const string& Value,GUID& Guid)
{
return (UuidFromString((unsigned short*)Value.CPtr(),&Guid)==RPC_S_OK)?true:false;
}
示例12:
const wchar_t *GetPluginData() {return strPluginData.CPtr();}