积木

No sub title

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  140 Posts :: 1 Stories :: 11 Comments :: 0 Trackbacks

常用链接

留言簿(1)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

声明:
 1 /************************************************************************/
 2 /** 系统全局函数
 3 /************************************************************************/
 4 
 5 #pragma once
 6 
 7 #include <string>
 8 
 9 // 取得应用程序路径(末尾带 '\' 的)
10 CString ExtractFilePath(void);
11 // 取得应用程序路径(末尾不带 '\' 的)
12 CString ExtractFileDir(void);
13 // 取得指定文件的目录(参数为文件的完整路径,返回值末尾不带 '\' 的)
14 CString GetFileDir(const CString& csFullFileName);
15 // 取得指定文件的目录(参数为文件的完整路径,返回值末尾带 '\' 的)
16 CString GetFilePath(const CString& csFullFileName);
17 // 将CString转换成string(将Unicode串转换成Ansi(返回string))
18 std::string ConvertW2A(const CString& csString);
19 // 将路径中的指定字符用另外的指定字符替换,并返回(string)
20 std::string StringReplace(const char* pszString, const char cSourceChar, const char cDestChar);

实现:
 1 #include "stdafx.h"
 2 #include "GlobalFunction.h"
 3 #include <atlconv.h>
 4 
 5 CString ExtractFileDir(void)
 6 {
 7     CString csResult;
 8     WCHAR pszExeFullPath[MAX_PATH];
 9     ::GetModuleFileName(NULL, pszExeFullPath, MAX_PATH);
10     csResult = pszExeFullPath;
11     int iPos = csResult.ReverseFind('\\');
12     csResult = csResult.Left(iPos);
13     return csResult;
14 }
15 
16 CString ExtractFilePath(void)
17 {
18     CString csResult = ExtractFileDir();
19     if (csResult.GetLength() > 0)
20         return csResult + L"\\";
21     return csResult;
22 }
23 
24 CString GetFileDir(const CString& csFullFileName)
25 {
26     if (!::PathFileExists(csFullFileName))
27         return CString(L"");
28 
29     CString csResult(csFullFileName);
30     int iPos = csResult.ReverseFind('\\');
31     csResult = csResult.Left(iPos);
32     return csResult;
33 }
34 
35 CString GetFilePath(const CString& csFullFileName)
36 {
37     CString csResult = GetFileDir(csFullFileName);
38     if (csResult.GetLength() > 0)
39         csResult + "\\";
40     return csResult;
41 }
42 
43 std::string ConvertW2A(const CString& csString)
44 {
45     USES_CONVERSION;
46     return std::string(W2A(csString));
47 }
48 
49 std::string StringReplace(const char* pszString, const char cSourceChar, const char cDestChar)
50 {
51     if (strlen(pszString) == 0)
52         return std::string("");
53     const UINT iLen = strlen(pszString) + 1;
54     char* pszTargetString = new char[iLen];
55     //char pszTargetString[iLen];
56     try
57     {
58         strncpy(pszTargetString, pszString, iLen);
59         for (int iIndex = 0; iIndex != iLen; iIndex++)
60         {
61             if (pszTargetString[iIndex] == cSourceChar)
62                 pszTargetString[iIndex] = cDestChar;
63         }
64         delete [] pszTargetString;
65         return std::string(pszTargetString);
66     }
67     catch ()
68     {
69         delete [] pszTargetString;
70         return std::string("");
71     }
72 }
posted on 2011-06-15 15:35 Jacc.Kim 阅读(567) 评论(0)  编辑 收藏 引用 所属分类: VC / C++

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理