- 积分
- 412
- 实力分
- 点
- 金钱数
- 两
- 技术分
- 分
- 贡献分
- 分
|
发表于 2009-6-21 11:03:22
|
显示全部楼层
看了下S75的源码,就是多了一个判断。加了一个18x的判断而已。
剩下的都是数据库的任务了。
至于S75上的新版数据库只是改了压缩算法,小8上的数据库压缩率已经够大了吧?
S75上新的定义- #ifdef OLD_VER
- //如果是13x,15x,18x,则判定为移动电话
- else if(*pNoStr == '1' && (*(pNoStr+1) == '3' || *(pNoStr+1) == '5' || *(pNoStr+1) == '8'))
- {
- bLocal = 2;
- char chTemp=*(pNoStr+1);
- pNoStr += 2;
- *(pNoStr+5) = '\0';
- //得到手机号码的前五位,在手机号码表中查找对应的城市号
- if(chTemp == '3')//13X
- CityNo = GetCode((byte *)(CODESHOWDATAADDRESS+pHead->CodeTableOffset), atou(pNoStr));
- else if(chTemp == '5')//15X
- CityNo = GetCode((byte *)(CODESHOWDATAADDRESS+0x20000), atou(pNoStr));
- else if(chTemp == '8')//18x
- CityNo = GetCode((byte *)(CODESHOWDATAADDRESS+0x3B774), atou(pNoStr));
- #else
- //手机号码
- else if(*pNoStr == '1' && pHead->RangeOffset[*(pNoStr+1)-'0'][0] != 0xFFFFFFFF)
- {
- bLocal = 2;
- char chTemp=(*(pNoStr+1)-'0');
- pNoStr += 2;
- *(pNoStr+5) = '\0';
- CityNo = GetCodeRange((CRANGE *)(CODESHOWDATAADDRESS+0x4000+(pHead->RangeOffset[chTemp][0]<<2)), pHead->RangeOffset[chTemp][1], atou(pNoStr));
- #endif
- }
复制代码 |
|