好久没有发文章了,发点福利放点代码吧,废话不多说,直接上代码:
头文件:
#ifndef WXWIDGETHELPER_H
#define WXWIDGETHELPER_H
#pragma once
#include <wx/filename.h>
#include <wx/arrstr.h>
/**
* @brief 获取文件路径.
* @param sFilePath 文件路径.
* @retrive wxString 文件路径.
* @remarks
Use like this:
* @code
wxString s = GetFilePath("temp\\DEM.tif");
//结果为:"temp
* @endcode
* @author Zhengwen.Fu
* @history - 1.Created by Zhengwen.Fu on 4th Feb,2015.
*/
wxString GetFilePath(wxString sFilePath);
/**
* @brief 获取文件名,不带扩展名.
* @param sFilePath 文件路径.
* @retrive wxString 文件名.
* @remarks
Use like this:
* @code
wxString s = GetFileName("temp\\DEM.tif");
//结果为:DEM
* @endcode
* @author Zhengwen.Fu
* @history - 1.Created by Zhengwen.Fu on 4th Feb,2015.
*/
wxString GetFileName(wxString sFilePath);
/**
* @brief 获取完整的文件名.
* @param sFilePath 文件路径.
* @retrive wxString 文件名.
* @remarks
Use like this:
* @code
wxString s = GetFullName("temp\\DEM.tif");
//结果为:DEM.tif
* @endcode
* @author Zhengwen.Fu
* @history - 1.Created by Zhengwen.Fu on 4th Feb,2015.
*/
wxString GetFullName(wxString sFilePath);
/**
* @brief 使用原始路径,拼接新的文件名生成新的文件路径.
* @param sFilePath 文件路径.
* @param sAppendName 新文件名.
* @retrive wxString 新文件路径.
* @remarks
Use like this:
* @code
wxString s = GetNewFullPath("temp\\DEM.tif","Avg.tif");
//结果为:temp\\Avg.tif
* @endcode
* @author Zhengwen.Fu
* @history - 1.Created by Zhengwen.Fu on 4th Feb,2015.
*/
wxString GetNewFullPath(wxString sFilePath,wxString sNewFileName);
/**
* @brief 使用原始路径及文件名,拼接新的字符串生成新的文件路径.
* @param sFilePath 文件路径.
* @param sAppendName 需要附加的文件名.
* @retrive wxString 新文件路径.
* @remarks
Use like this:
* @code
wxString s = GetNewFullPath2("temp\\DEM.tif","_Avg.tif");
//结果为:temp\\DEM_Avg.tif
* @endcode
* @author Zhengwen.Fu
* @history - 1.Created by Zhengwen.Fu on 4th Feb,2015.
*/
wxString GetNewFullPath2(wxString sFilePath,wxString sAppendName);
/**
* @brief 分割字符串.
* @param pString [in]待分割字符串.
* @param cSpliter [in]分隔字符.
* @remarks
Use like this:
* @code
wxArrayString arry = wxSplitString("a,b,c,d",',');
size_t count = arry.GetCount();
wxPrintf(_T("\arrysize = %u\n"), count);
for ( size_t arg = 0; arg < count; arg++ )
{
wxPrintf(_T("\tarry[%u] = %s\n"), arg, arry[arg].c_str());
}
* @endcode
* @author Zhengwen.Fu
* @history - 1.Created by Zhengwen.Fu on 25th Mar,2015.
*/
wxArrayString wxSplitString(const wxChar *pString,const wxChar cSpliter);
/**
* @brief 分割字符串.
* @param pString [in]待分割字符串.
* @param pSpliter [in]分隔字符串.
* @remarks
Use like this:
* @code
wxArrayString arry = wxSplitString(",,a,b,,,c,,,d,adsdsd,sdfwee,dddd,",",");
size_t count = arry.GetCount();
wxPrintf(_T("\arrysize = %u\n"), count);
for ( size_t arg = 0; arg < count; arg++ )
{
wxPrintf(_T("\tarry[%u] = %s\n"), arg, arry[arg].c_str());
}
* @endcode
* @author Zhengwen.Fu
* @history - 1.Created by Zhengwen.Fu on 25th Mar,2015.
*/
wxArrayString wxSplitString(const wxChar *pString,const wxChar *pSpliter);
#endif
源文件:
#include "wxWidgetHelper.h"
wxString GetFilePath(wxString sFilePath)
{
wxFileName fName(sFilePath);
return fName.GetPath();
}
wxString GetFileName(wxString sFilePath)
{
wxFileName fName(sFilePath);
return fName.GetName();
}
wxString GetFullName(wxString sFilePath)
{
wxFileName fName(sFilePath);
return fName.GetFullName();
}
wxString GetNewFullPath(wxString sFilePath,wxString sNewFileName)
{
wxFileName fName(sFilePath);
return (fName.GetPath()+"\\"+sNewFileName);
}
wxString GetNewFullPath2(wxString sFilePath,wxString sAppendName)
{
wxFileName fName(sFilePath);
return (fName.GetPath()+"\\"+fName.GetName()+sAppendName);
}
wxArrayString wxSplitString(const wxChar *p,const wxChar cSpliter)
{
wxArrayString arry;
wxString str;
str.reserve(1024);
while (true)
{
while(*p==cSpliter)
p++;
if(*p == _T('\0'))
break;
for (str.Clear();;p++)
{
if(*p==cSpliter || *p == _T('\0'))
break;
str += *p;
}
arry.push_back(str);
}
return arry;
}
wxArrayString wxSplitString(const wxChar *pString,const wxChar *pSpliter)
{
wxArrayString arry;
wxString s(pString);
while (true)
{
int pos = s.Find(pSpliter);
if (pos == 0)
{
s = s.substr(1);
continue;
}
if(pos == wxString::npos )
{
if(s.Length() > 0)
arry.push_back(s.Trim());
break;
}
arry.push_back(s.substr(0,pos));
s = s.substr(pos+1);
}
return arry;
}
OK了,具体用法在注释中有。