本文整理汇总了C++中CStr::TrimRight方法的典型用法代码示例。如果您正苦于以下问题:C++ CStr::TrimRight方法的具体用法?C++ CStr::TrimRight怎么用?C++ CStr::TrimRight使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CStr
的用法示例。
在下文中一共展示了CStr::TrimRight方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: wcslen
int
CIniFile::Split( const CStr &source, LPCTSTR sep, CStrArray &dest, BOOL trim /* = TRUE */ )
{
int pos = source.Find( sep );
int startPos = 0;
CStr elem;
int sepLen = wcslen( sep );
dest.RemoveAll();
while( pos != -1 )
{
elem = source.Mid( startPos, pos-startPos );
if ( trim ) { elem.TrimLeft(); elem.TrimRight(); }
dest.Add( elem );
startPos = pos+sepLen;
pos = source.Find( sep, startPos );
}
elem = source.Mid( startPos );
if ( trim ) { elem.TrimLeft(); elem.TrimRight(); }
dest.Add( elem );
return dest.GetSize();
}
示例2: OnPopupMenuAddUnitToTracking
void CUnitPane::OnPopupMenuAddUnitToTracking (wxCommandEvent& WXUNUSED(event))
{
long idx = GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
CUnit * pUnit = GetUnit(idx);
int sectidx;
CStr S;
const char * szName;
const char * szValue;
BOOL found = FALSE;
BOOL ManyUnits = (GetSelectedItemCount() > 1);
sectidx = gpApp->GetSectionFirst(SZ_SECT_UNIT_TRACKING, szName, szValue);
while (sectidx >= 0)
{
if (!S.IsEmpty())
S << ",";
S << szName;
sectidx = gpApp->GetSectionNext(sectidx, SZ_SECT_UNIT_TRACKING, szName, szValue);
}
if (S.IsEmpty())
S = "Default";
if (pUnit || ManyUnits)
{
CComboboxDlg dlg(this, "Add unit to a tracking group", "Select a group to add unit to.\nTo create a new group, just type in it's name.", S.GetData());
if (wxID_OK == dlg.ShowModal())
{
idx = GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
while (idx>=0)
{
pUnit = GetUnit(idx);
found = FALSE;
szValue = gpApp->GetConfig(SZ_SECT_UNIT_TRACKING, dlg.m_Choice.GetData());
while (szValue && *szValue)
{
szValue = S.GetToken(szValue, ',');
if (atol(S.GetData()) == pUnit->Id)
{
found = TRUE;
break;
}
}
if (found)
wxMessageBox(wxT("The unit is already in the group."));
else
{
S = gpApp->GetConfig(SZ_SECT_UNIT_TRACKING, dlg.m_Choice.GetData());
S.TrimRight(TRIM_ALL);
if (!S.IsEmpty())
S << ",";
S << pUnit->Id;
gpApp->SetConfig(SZ_SECT_UNIT_TRACKING, dlg.m_Choice.GetData(), S.GetData());
}
idx = GetNextItem(idx, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
}
}
}
}
示例3: if
CValue *GetVariable( CStr &var, BOOL create, int *position, BOOL local )
{
int pos, startPos;
bool oldStyle = false, reference = false, isPtr = false;
CStr entryName;
CMapStrToValue *map = NULL;
CValue *value;
CValue *dummy;
pos = 0;
if ( !local )
{
if ( LocalVariables != NULL && LocalVariables->Lookup( L"%AUTOLOCAL%", dummy ) )
local = TRUE;
}
// Skip spaces
while ( pos < var.GetLength() && GetCharacterType( var[pos] ) == CInterpreter::CHAR_WHITESPACE ) pos++;
if ( pos < var.GetLength() && var[pos] == L'%' )
{
oldStyle = true;
pos++;
while ( pos < var.GetLength() && GetCharacterType( var[pos] ) == CInterpreter::CHAR_WHITESPACE ) pos++;
}
if ( create && pos < var.GetLength() && var[pos] == L'[' )
{
reference = true;
pos++;
while ( pos < var.GetLength() && GetCharacterType( var[pos] ) == CInterpreter::CHAR_WHITESPACE ) pos++;
}
startPos = pos;
// Skip all valid variable name characters
while ( pos < var.GetLength()
&& ( GetCharacterType( var[pos] ) == CInterpreter::CHAR_ALPHA
|| GetCharacterType( var[pos] ) == CInterpreter::CHAR_DIGIT
|| GetCharacterType( var[pos] ) == CInterpreter::CHAR_UNDERSCORE
|| (var[pos] == L':' && (pos == startPos || pos == startPos + 1 ))
)
) pos++;
// Skip Regex variable name characters
if ((var[pos]==L'$') && (pos+1<var.GetLength())){
if ( var[pos+1] == L'&'
|| var[pos+1] == L'`'
|| var[pos+1] == L'\''
|| var[pos+1] == L'+'
|| var[pos+1] == L'_'
)pos +=2;
else{
int i=0;
for (i=1;i<=3;i++){
if ( pos+i<var.GetLength() && var[pos+i] >=L'0' && var[pos+i]<=L'9') { /* do nothing */ }else break;
}
pos+=i;
}
}
// Skip spaces
while ( pos < var.GetLength() && GetCharacterType( var[pos] ) == CInterpreter::CHAR_WHITESPACE ) pos++;
//jwz:add for Global Variable
if (var[startPos]==L':' && var[startPos+1]==L':'){
local = FALSE;
startPos +=2;
}
// No array index?
if ( pos == -1 || pos >= var.GetLength() || var[pos] != L'[' )
{
entryName = var;
if ( pos != -1 && pos <= var.GetLength() )
entryName = var.Mid( startPos, pos-startPos );
entryName.TrimLeft();
entryName.TrimRight();
if ( position != NULL )
*position = pos;
if ( entryName.IsEmpty())
{
VarError = L"Empty variable name not allowed";
if ( position != NULL ) *position = -1;
return NULL;
}
entryName.MakeUpper();
if ( local && LocalVariables != NULL && LocalVariables->Lookup( L"%GL_" + entryName + L"%", dummy ) ) //predefined GLOBAL declare variable
{
local = FALSE;
}
if ( local && LocalVariables != NULL && LocalVariables->Lookup( entryName, value ) ) {}
else if ( local == FALSE && Variables.Lookup( entryName, value ) ) {}
else
//.........这里部分代码省略.........
示例4: CMapStrToString
void
CIniFile::Parse( LPCTSTR cont )
{
CStr content = cont;
CStr sectionName, key, value;
CMapStrToString *section = NULL;
BOOL hasEmptySection = FALSE;
Sections.RemoveAll();
while ( content.GetLength() > 0 )
{
CStr line;
int pos = content.Find( _T("\n") );
if ( pos != -1 )
{
line = content.Left( pos );
content = content.Mid( pos+1 );
}
else
{
line = content;
content = _T("");
}
line.TrimLeft(); line.TrimRight();
if ( line.GetLength() > 0 && line.GetAt(0) != '#' && line.GetAt(0) != ';' )
{
if ( line.GetAt(0) == '[' && line.Right(1) == L"]" )
{
sectionName = line.Mid( 1, line.GetLength()-2 );
sectionName.MakeLower();
section = new CMapStrToString();
Sections.SetAt( sectionName, section );
}
else
{
int eqPos = line.Find( '=' );
if ( eqPos != -1 )
{
key = line.Left( eqPos );
key.TrimLeft(); key.TrimRight();
value = line.Mid( eqPos+1 );
value.TrimLeft(); value.TrimRight();
if ( value.Left(1) == L"\"" && value.Right(1) == L"\"" )
{
value = value.Mid( 1, value.GetLength()-2 );
}
key.MakeLower();
if ( section == NULL && hasEmptySection == FALSE )
{
section = new CMapStrToString();
Sections.SetAt( L"", section );
hasEmptySection = TRUE;
}
section->SetAt( key, value );
}
}
}
}
}