用VC++6.0程式設計實現漢字拼音查詢
阿新 • • 發佈:2019-01-23
{
4 m_List1.ResetContent();
5 UpdateData();
6 m_Edit1.TrimLeft();
7 m_Edit1.TrimRight();
8 if(m_Edit1.IsEmpty()) return;
9 UINT i;
10 unsigned char ch;
11 for(int j=0; j<m_Edit1.GetLength(); j++)
12 {
13 ch = m_Edit1.GetAt(j); // 漢字串中的第 i 個字元
14 // 判斷漢字是否合法15if ( (((j+2)%2==0) && ch<0xA1) || (((j+2)%2)==1&& ch<0x40) )
16 {
17 MessageBox("輸入了非法的字元!", NULL, MB_ICONWARNING);
18 return;
19 }20 }21
22 HRSRC HGBSrc;
23 LPVOID GBTemp;
24 // 查詢對應表資源25 HGBSrc = FindResource(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_PYGBK1), "PYGBK");
26 if(HGBSrc == NULL) return;
27 // 得到對應表資料的大小28 DWORD size = SizeofResource(AfxGetInstanceHandle(), HGBSrc);
29 // 裝入對應表30 HGLOBAL m_HGBStr = LoadResource(AfxGetInstanceHandle(), HGBSrc);
31 // 鎖定資源並得到資料指標32 GBTemp = LockResource(m_HGBStr);
33 // 轉換為 char 型別的指標34char*buf = (char *)GBTemp;
35
36 char hzstr[21], ss[50];
37 strcpy(hzstr, m_Edit1);
38 for(i=0; i<10; i++) arPY[i][0]=0;
39 // 呼叫查詢拼音的函式40this->SearchHZPY(buf, size, hzstr);
41 // 在列表框中顯示結果42for(i=0; i<strlen(hzstr)/2; i++)
43 {
44 sprintf(ss, "%c%c - %s", hzstr[i*2], hzstr[i*2+1], arPY[i]);
45 m_List1.AddString(ss);
46 }47}
4 m_List1.ResetContent();
5 UpdateData();
6 m_Edit1.TrimLeft();
7 m_Edit1.TrimRight();
8 if(m_Edit1.IsEmpty()) return;
9 UINT i;
10 unsigned char ch;
11 for(int j=0; j<m_Edit1.GetLength(); j++)
12 {
13 ch = m_Edit1.GetAt(j); // 漢字串中的第 i 個字元
14 // 判斷漢字是否合法15if
16 {
17 MessageBox("輸入了非法的字元!", NULL, MB_ICONWARNING);
18 return;
19 }20 }21
22 HRSRC HGBSrc;
23 LPVOID GBTemp;
24 // 查詢對應表資源25 HGBSrc = FindResource(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_PYGBK1),
26 if(HGBSrc == NULL) return;
27 // 得到對應表資料的大小28 DWORD size = SizeofResource(AfxGetInstanceHandle(), HGBSrc);
29 // 裝入對應表30 HGLOBAL m_HGBStr = LoadResource(AfxGetInstanceHandle(), HGBSrc);
31 // 鎖定資源並得到資料指標32 GBTemp = LockResource(m_HGBStr);
33 // 轉換為 char 型別的指標34char*buf = (char
35
36 char hzstr[21], ss[50];
37 strcpy(hzstr, m_Edit1);
38 for(i=0; i<10; i++) arPY[i][0]=0;
39 // 呼叫查詢拼音的函式40this->SearchHZPY(buf, size, hzstr);
41 // 在列表框中顯示結果42for(i=0; i<strlen(hzstr)/2; i++)
43 {
44 sprintf(ss, "%c%c - %s", hzstr[i*2], hzstr[i*2+1], arPY[i]);
45 m_List1.AddString(ss);
46 }47}