UnicodeCharMapWideChar.cpp
上传用户:hell82222
上传日期:2013-12-19
资源大小:1872k
文件大小:2k
源码类别:

CAD

开发平台:

Visual C++

  1. // UnicodeCharMapWideChar.cpp: implementation of the CUnicodeCharMapWideChar class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "UnicodeCharMapWideChar.h"
  6. //////////////////////////////////////////////////////////////////////
  7. // Construction/Destruction
  8. //////////////////////////////////////////////////////////////////////
  9. CUnicodeCharMapWideChar g_UnicodeCharMapWideChar;
  10. CUnicodeCharMapWideChar::CUnicodeCharMapWideChar()
  11. {
  12. /*
  13. CStdioFile file;
  14. //取得默认配置文件的路径
  15. TCHAR szFileName[MAX_PATH];
  16. ::GetModuleFileName(::GetModuleHandle(_T("CMN.dll")),szFileName,MAX_PATH);
  17. (*_tcsrchr(szFileName,'\'))='';
  18. _tcscat(szFileName,_T("\Support\switchunicode.txt"));
  19. if(file.Open(szFileName,CFile::modeRead))
  20. {
  21. CString strText;
  22. while(file.ReadString(strText))
  23. {
  24. if(strText.GetLength()==6||strText.GetLength()==7)
  25. {
  26. if(strText.GetAt(5)=='=')
  27. {
  28. unsigned short ch;
  29. if(strText[3]>=0x61)
  30. {
  31. ch=strText[3]-0x61+10;
  32. }
  33. else if(strText[3]>=0x41)
  34. {
  35. ch=strText[3]-0x41+10;
  36. }
  37. else
  38. {
  39. ch=strText[3]-0x30;
  40. }
  41. if(strText[4]>=0x61)
  42. {
  43. ch=ch*16+strText[4]-0x61+10;
  44. }
  45. else if(strText[4]>=0x41)
  46. {
  47. ch=ch*16+strText[4]-0x41+10;
  48. }
  49. else
  50. {
  51. ch=ch*16+strText[4]-0x30;
  52. }
  53. if(strText[5]>=0x61)
  54. {
  55. ch=ch*16+strText[5]-0x61+10;
  56. }
  57. else if(strText[5]>=0x41)
  58. {
  59. ch=ch*16+strText[5]-0x41+10;
  60. }
  61. else
  62. {
  63. ch=ch*16+strText[5]-0x30;
  64. }
  65. if(strText[6]>=0x61)
  66. {
  67. ch=ch*16+strText[6]-0x61+10;
  68. }
  69. else if(strText[6]>=0x41)
  70. {
  71. ch=ch*16+strText[6]-0x41+10;
  72. }
  73. else
  74. {
  75. ch=ch*16+strText[6]-0x30;
  76. }
  77. if(strText.GetLength()==6)
  78. {
  79. m_aUnicodeChar.Add(ch);
  80. m_aWideChar.Add(strText.Right(1));
  81. }
  82. else
  83. {
  84. m_aUnicodeChar.Add(ch);
  85. m_aWideChar.Add(strText.Right(2));
  86. }
  87. }
  88. }
  89. }
  90. file.Close();
  91. }
  92. */
  93. m_aUnicodeChar.Add(0x00d8);
  94. m_aWideChar.Add("%%c");
  95. }
  96. CUnicodeCharMapWideChar::~CUnicodeCharMapWideChar()
  97. {
  98. }
  99. BOOL CUnicodeCharMapWideChar::GetWideChar(char ch,CString &str)
  100. {
  101. ASSERT(m_aUnicodeChar.GetSize()==m_aWideChar.GetSize());
  102. for(int i=0;i<m_aUnicodeChar.GetSize();i++)
  103. {
  104. if(m_aUnicodeChar[i]==ch)
  105. {
  106. str=m_aWideChar[i];
  107. return TRUE;
  108. }
  109. }
  110. return FALSE;
  111. }