1 // 七位终端号转十位 例: "EAU001" --> "1410290001"
2 KYLib::KYString TDevObj::GetTerminalIDByDev(KYString ADevID)
3 {
4 KYString result = "";
5 char szResult[11] = {0}; // 存放10位终端号,需多定义一个字符存放结束符'\0'
6 char szBuffer[8] = {0};
7 KYString szTmp = "";
8
9 int nIndex = strlen((const char*)ADevID) - 7;
10 strncpy(szBuffer, (const char*)ADevID + nIndex, 7);
11
12 // 年
13 if (szBuffer[0] < 'A'){
14 szResult[0] = '0';
15 memcpy(szResult + 1, szBuffer, 1);
16 }
17 else{
18 szTmp = IntToStr(szBuffer[0] - 'A' + 10);
19 memcpy(szResult, (const char*)szTmp, 2);
20 }
21
22 // 月
23 if (szBuffer[1] < 'A'){
24 szResult[2] = '0'; // 此位初始化为了结束符, 需赋值'0'
25 memcpy(szResult + 3, szBuffer + 1, 1);
26 }
27 else{
28 szTmp = IntToStr(szBuffer[1] - 'A' + 10);
29 memcpy(szResult + 2, (const char*)szTmp, 2);
30 }
31
32 // 日
33 if (szBuffer[2] < 'A'){
34 szResult[4] = '0';
35 memcpy(szResult + 5, szBuffer + 2, 1);
36 }
37 else if (szBuffer[2] >= 'A' && szBuffer[2] < 'O')
38 {
39 szTmp = IntToStr(szBuffer[2] - 'A' + 10);
40 memcpy(szResult + 4, (const char*)szTmp, 2);
41 }
42 else if (szBuffer[2] > 'O') // 大于字母O的需要减1
43 {
44 szTmp = IntToStr(szBuffer[2] - 'A' + 10 -1);
45 memcpy(szResult + 4, (const char*)szTmp, 2);
46 }
47
48 memcpy(szResult + 6, szBuffer + 3, 4);
49
50 result = szResult;
51
52 return result;
53 }
1 // 十位终端号转七位 例:"1404210001" -->"E4L0001"
2 string GetConvertCode(char* pTerminalID)
3 {
4 char szBuffer[11] = {0};
5 char szResult[8] = {0};
6 int nIndex = strlen(pTerminalID) - 10;
7 strncpy(szBuffer, pTerminalID + nIndex, 10);
8 szResult[0] = szBuffer[1];
9 szResult[1] = (szBuffer[2] - 0x30)*10 + (szBuffer[3] - 0x30);
10 if (szResult[1] >= 10)
11 {
12 szResult[1] = szResult[1] - 10 + 'A';
13 }
14 else
15 {
16 szResult[1] = szResult[1] + '0';
17 }
18
19 szResult[2] = (szBuffer[4] - 0x30)*10 + (szBuffer[5] - 0x30);
20 if (szResult[2] >= 24)//屏蔽字母O
21 {
22 szResult[2]++;
23 }
24 if (szResult[2] >= 10)
25 {
26 szResult[2] = szResult[2] - 10 + 'A';
27 }
28 else
29 {
30 szResult[2] = szResult[2] + '0';
31 }
32 memcpy(szResult + 3, szBuffer + 6, 4);
33 string strRet = szResult;
34
35 return strRet;
36 }