CString strFullName = AfxGetApp()->m_pszHelpFilePath;
得到strFullName=C:\Program Files\Tencent\RTXC\Plugins\123\123.Hlp.
我想要C:\Program Files\Tencent\RTXC\这串,怎么截取?

解决方案 »

  1.   

    strFullName.Left(strlen("C:\Program Files\Tencent\RTXC\"));
      

  2.   

    看样子前面RTXC前这部分是固定的吧,只是Plugins后面那部分是文件名?这样的话
    nSatrt = CString.Find()到Plugins,按照返回的索引值CString.Delete掉后面不需要的部分就可以了
      

  3.   

    呵呵,这个路径不是固定的,有可能是D:\Tencent\RTXC\我不知道的,我就要去找\Tencent\RTXC\结束的路径
      

  4.   

    CString strDes("\\Tencent\\RTXC\\");
    CString strResult = strFullName.Left(strFullName.Find(strDes)));
    strResult += strDes;strResult 是你要的?
      

  5.   


    CString strText(_T("C:\\Program Files\\Tencent\\RTXC\\Plugins\\123\\123.Hlp"));
    LPCSTR szToken = _T("Tencent\\RTXC\\"); int flag = -1;
    if(-1 != (flag  = strText.Find(szToken)))
    {
    strText = strText.Left(flag + _tcslen(szToken));
    }
    AfxMessageBox(strText);
      

  6.   

    最好是用PathRemoveFileSpec()函数,执行一次,就退回上一级,执行两次就返回上两层目录,依此类推。 TCHAR str[] = TEXT("C:\\Program Files\\Tencent\\RTXC\\Plugins\\123\\123.Hlp");

    PathRemoveFileSpec(str);
    //C:\Program Files\Tencent\RTXC\Plugins\123
    _tprintf(TEXT("%s\n"), str); PathRemoveFileSpec(str);
    //C:\Program Files\Tencent\RTXC\Plugins
    _tprintf(TEXT("%s\n"), str); PathRemoveFileSpec(str);
    //C:\Program Files\Tencent\RTXC
    _tprintf(TEXT("%s\n"), str);
      

  7.   


    找到"Tencent\\RTXC\\"在字串中的位置,然后取字串左边 该位置+"Tencent\\RTXC\\"的长度 的内容就是你要的了。