1. __ccProvince[]
省的信息。包括:省的首字母;名称;多少个城市。
typedef struct tagPROVINCE
{
char chPy;
char reserved;
char szName[MAX_PROVLEN]; //8个字节。省名称
WORD nCountyCount;
}PROVINCE;
eg:
0x61,0x00,0x89,0x5b,0xbd,0x5f,0x00,0x00,0x00,0x00,0x10,0x00,
//解释:0x61—字母a;0x00—保留;0x89,0x5b,0xbd,0x5f,0x00,0x00,0x00,0x00—安徽的UCS2;0x10,0x00—16个城市
0x62,0x00,0x17,0x53,0xac,0x4e,0x00,0x00,0x00,0x00,0x01,0x00
//解释:0x62—字母b;0x00—保留;0x17,0x53,0xac,0x4e,0x00,0x00,0x00,0x00—北京的UCS2;0x01,0x00—1个城市
0x66,0x00,0x8f,0x79,0xfa,0x5e,0x00,0x00,0x00,0x00,0x09,0x00
//解释:0x66—字母f;0x00—保留;0x79,0xfa,0x5e,0x00,0x00,0x00,0x00—福建的UCS2;0x09,0x00—9个城市
2._ccCounty
每个省中包含的城市的信息。包括:省的序号+城市的首字母+城市名称+城市区号。
数据结构:
typedef struct tagCOUNTY
{
char nProv; //省的序号
char chPy; //城市的首字母
char szName[MAX_COUNTYLEN]; //12个字节。城市名称,后来改为14字节
char szAreaCode[MAX_AREACODELEN]; //10个字节。城市区号,后来改为12字节(香港,澳门,台湾都是5位。)
}COUNTY;
实例:
0x00,0x61,0x89,0x5b,0x86,0x5e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x35,0x00,0x35,0x00,0x36,0x00,0x00,0x00
0x00—省的序号;0x61—城市的首字母(安庆);0x89,0x5b,0x86,0x5e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00—城市名称(安庆);
0x30,0x00,0x35,0x00,0x35,0x00,0x36,0x00,0x00,0x00—城市区号
0x00,0x62,0x8c,0x86,0xe0,0x57,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x35,0x00,0x35,0x00,0x32,0x00,0x00,0x00
0x00—省的序号;0x62—城市首字母(蚌埠);0x8c,0x86,0xe0,0x57,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00—城市名称(蚌埠);
0x30,0x00,0x35,0x00,0x35,0x00,0x32,0x00,0x00,0x00—城市区号
3. __ccCountyByAreaCode[]
typedef struct tagCOUNTY_BYAREACODE
{
WORD nCountyIdx;
}COUNTY_BYAREACODE;
按照区号大小的顺序,来排列区号。这里的值表示该区号在数据库_ccCounty[]中的具体位置。
例如:
第一个0x10 0x00—表示北京的区号(010)在数据库._ccCounty[]中第16个位置。
第二个 0x2d 0x00—表示广州的区号(020)在数据库._ccCounty[]中第45个位置。
4. __ccNumber[]
手机号码。
typedef struct tagNUMBER
{
BYTE num[3];
BYTE sum;
WORD county;
}NUMBER;
例如:
0x2a,0xd6,0x13,0x02,0x10,0x00
0x2a,0xd6,0x13—开始号码(1300010),高字节在后,低字节在前,以long int表示;0x02—号码个数,即1300010,1300011;0x10,0x00—城市的索引,在_ccCounty中的位置。
0x2c,0xd6,0x13,0x08,0x22,0x01
0x2c,0xd6,0x13—开始号码(1300012);0x08—共8个号码(1300012—1300019);0x22,0x01—城市在_ccCounty中的位置。