当前位置: 首页>>代码示例>>C++>>正文


C++ nglString::GetLeft方法代码示例

本文整理汇总了C++中nglString::GetLeft方法的典型用法代码示例。如果您正苦于以下问题:C++ nglString::GetLeft方法的具体用法?C++ nglString::GetLeft怎么用?C++ nglString::GetLeft使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在nglString的用法示例。


在下文中一共展示了nglString::GetLeft方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: Canonize

static bool Canonize(nglString& rStr)
{
  nglString canon;
  int32 len = rStr.GetLength();
  int32 root_part = GetRootPart(rStr);
  int32 last_slash = root_part;
  int32 slash = 0;
  
  canon = rStr.GetLeft(root_part);
  while (slash < len)
  {
    slash = rStr.Find(_T('/'), last_slash);
    if (slash == - 1)
      slash = len;
    
    if (((slash - last_slash) == 1) && (rStr.GetChar(last_slash) == _T('.')))
    {
      // Ignore '.'
    }
    else
      if (((slash - last_slash) == 2) && (!rStr.Compare(_T(".."), last_slash, 2)))
      {
        // Interpret '..'
        int32 prev_slash = canon.FindLast(_T('/'));
        if (prev_slash < root_part)
          prev_slash = root_part;
        
        if (!canon.IsEmpty() && canon.Compare(_T(".."), canon.GetLength() - 2, 2))
          canon.Delete(prev_slash);
        else
        {
          if (canon.GetLength() > root_part)
            canon += _T('/');
          canon += _T("..");
        }
      }
      else
      {
        // Simply append path node
        nglString node = rStr.Extract(last_slash, (slash - last_slash));
        if (canon.GetLength() > root_part)
          canon += _T('/');
        canon += node;
      }
    
    last_slash = slash + 1;
  }
  
  rStr = canon;
  return true;
}
开发者ID:,项目名称:,代码行数:51,代码来源:

示例2: Find

nuiWidgetPtr nuiContainer::Find(const nglString& rName)
{ 
  CheckValid();
  int slash = rName.Find('/'); 

  if (slash >= 0) 
  { 
    nglString path = rName.GetLeft(slash); 
    nglString rest = rName.Extract(slash + 1); 
    nuiWidgetPtr node = SearchForChild(path, false); 

    return node ? node->Find(rest) : NULL; 
  } 
  else 
    return SearchForChild(rName,false); 
} 
开发者ID:,项目名称:,代码行数:16,代码来源:


注:本文中的nglString::GetLeft方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。