📄 phonebook.cpp
字号:
phbEntriesSim[gTotalPbookEntrySim].alpha_id.name_length = atoi(token);
token = strtok(NULL, ",");
phbEntriesSim[gTotalPbookEntrySim].tel.length = atoi(token);
token = strtok(NULL, ",");
phbEntriesSim[gTotalPbookEntrySim].tel.type = atoi(token);
token = strtok(NULL, ",");
if(!strcmp(token,"NULL"))
phbEntriesSim[gTotalPbookEntrySim].tel.number[0] = '\0';
else
strcpy((S8 *)phbEntriesSim[gTotalPbookEntrySim].tel.number, token);
token = strtok(NULL, ",");
phbEntriesSim[gTotalPbookEntrySim].storage = atoi(token);
gTotalPbookEntrySim++;
}
}
fclose(pb);
if((pb = fopen("Phonebook_phone.txt", "r")) == NULL)
return;
else {
while (fgets(str,100,pb)) {
str[strlen(str) - 1]='\0';
token = strtok(str, ",");
phbEntriesPhone[gTotalPbookEntryPhone].index = atoi(token);
token = strtok(NULL, ",");
phbEntriesPhone[gTotalPbookEntryPhone].record_index = atoi(token);
token = strtok(NULL, ",");
if(!strcmp(token,"NULL"))
phbEntriesPhone[gTotalPbookEntryPhone].alpha_id.name[0] ='\0';
else
strcpy((S8 *)phbEntriesPhone[gTotalPbookEntryPhone].alpha_id.name, token);
token = strtok(NULL, ",");
phbEntriesPhone[gTotalPbookEntryPhone].alpha_id.name_dcs = atoi(token);
token = strtok(NULL, ",");
phbEntriesPhone[gTotalPbookEntryPhone].alpha_id.name_length = atoi(token);
token = strtok(NULL, ",");
phbEntriesPhone[gTotalPbookEntryPhone].tel.length = atoi(token);
token = strtok(NULL, ",");
phbEntriesPhone[gTotalPbookEntryPhone].tel.type = atoi(token);
token = strtok(NULL, ",");
if(!strcmp(token,"NULL"))
phbEntriesPhone[gTotalPbookEntryPhone].tel.number[0] = '\0';
else
strcpy((S8 *)phbEntriesPhone[gTotalPbookEntryPhone].tel.number, token);
token = strtok(NULL, ",");
phbEntriesPhone[gTotalPbookEntryPhone].storage = atoi(token);
gTotalPbookEntryPhone++;
}
}
fclose(pb);
}
/* If the read request is for MSISDN */
else if(PbookType == MMI_PHB_MSISDN) {
if((pb = fopen("PBookMSISDN.txt", "r")) == NULL) {
//create the file with null entries
pb = fopen("PBookMSISDN.txt", "w");
if(pb == NULL) exit(0);
for(U16 i = 0; i < 4; i++) {
sprintf(str, "%d,%d,%s,%d,%d,%d,%d,%s,%d\n",
i,
0,
"NULL",
0,
0,
0,
0,
"NULL",
0);
fputs(str, pb);
}
fclose(pb);
}
if((pb = fopen("PBookMSISDN.txt", "r")) != NULL) {
while (fgets(str,100,pb)) {
str[strlen(str) - 1]='\0';
token = strtok(str, ",");
phbEntries[gTotalPbookEntry].index = atoi(token);
token = strtok(NULL, ",");
phbEntries[gTotalPbookEntry].record_index = atoi(token);
token = strtok(NULL, ",");
if(!strcmp(token,"NULL"))
phbEntries[gTotalPbookEntry].alpha_id.name[0] ='\0';
else
strcpy((S8 *)phbEntries[gTotalPbookEntry].alpha_id.name, token);
token = strtok(NULL, ",");
phbEntries[gTotalPbookEntry].alpha_id.name_dcs = atoi(token);
token = strtok(NULL, ",");
phbEntries[gTotalPbookEntry].alpha_id.name_length = atoi(token);
token = strtok(NULL, ",");
phbEntries[gTotalPbookEntry].tel.length = atoi(token);
token = strtok(NULL, ",");
phbEntries[gTotalPbookEntry].tel.type = atoi(token);
token = strtok(NULL, ",");
if(!strcmp(token,"NULL"))
phbEntries[gTotalPbookEntry].tel.number[0] = '\0';
else
strcpy((S8 *)phbEntries[gTotalPbookEntry].tel.number, token);
token = strtok(NULL, ",");
phbEntries[gTotalPbookEntry].storage = atoi(token);
gTotalPbookEntryMSISDN++;
gTotalPbookEntry++;
}
fclose(pb);
}
}
/* If the read request is for the SDN number */
else if(PbookType == MMI_PHB_SDN) {
if((pb = fopen("PBookSDN.txt", "r")) == NULL) {
//create the file with null entries
pb = fopen("PBookSDN.txt", "w");
if(pb == NULL) exit(0);
for(U16 i = 0; i < 10; ++i) {
if(i%2)
sprintf(str, "%d,%d,%s,%d,%d,%d,%d,%s,%d\n",
(i+1), (i+1), "Pranav", MMI_PHB_ASCII, 6, 4, 129, "9811601293",MMI_SIM);
else
sprintf(str, "%d,%d,%s,%d,%d,%d,%d,%s,%d\n",
(i+1), (i+1), "NULL", MMI_PHB_ASCII, 0, 0, 129, "NULL", MMI_SIM);
fputs(str, pb);
}
fclose(pb);
}
if((pb = fopen("PBookSDN.txt", "r")) != NULL) {
while (fgets(str,100,pb)) {
str[strlen(str) - 1]='\0';
token = strtok(str, ",");
phbEntries[gTotalPbookEntry].index = atoi(token);
token = strtok(NULL, ",");
phbEntries[gTotalPbookEntry].record_index = atoi(token);
token = strtok(NULL, ",");
if(!strcmp(token,"NULL"))
phbEntries[gTotalPbookEntry].alpha_id.name[0] ='\0';
else
strcpy((S8 *)phbEntries[gTotalPbookEntry].alpha_id.name, token);
token = strtok(NULL, ",");
phbEntries[gTotalPbookEntry].alpha_id.name_dcs = atoi(token);
token = strtok(NULL, ",");
phbEntries[gTotalPbookEntry].alpha_id.name_length = atoi(token);
token = strtok(NULL, ",");
phbEntries[gTotalPbookEntry].tel.length = atoi(token);
token = strtok(NULL, ",");
phbEntries[gTotalPbookEntry].tel.type = atoi(token);
token = strtok(NULL, ",");
if(!strcmp(token,"NULL"))
phbEntries[gTotalPbookEntry].tel.number[0] = '\0';
else
strcpy((S8 *)phbEntries[gTotalPbookEntry].tel.number, token);
token = strtok(NULL, ",");
phbEntries[gTotalPbookEntry].storage = atoi(token);
gTotalPbookEntrySDN++;
gTotalPbookEntry++;
}
fclose(pb);
}
}
}
/*****************************************************************************
* FUNCTION
* WriteToFile
* DESCRIPTION
* Write database from file for phonebook/fdn/msisdn/sdn
* PARAMETERS
* U8 - Type Of Database phonebook/fdn/msisdn/sdn
* RETURNS
* void
*****************************************************************************/
void WriteToFile(U8 PbookType)
{
U16 i;
S8 str[200];
MSG_PHB_SET_ENRTY_REQ_STRUCT *setEntryReq = (MSG_PHB_SET_ENRTY_REQ_STRUCT*)gBuffer;
/*If the write request is for the FDN*/
if(setEntryReq->type != MMI_PHB_PHONEBOOK )
{
if(PbookType == MMI_PHB_FDN)
{
pb = fopen("Phonebook_fdn.txt", "w+");
if(pb == NULL)
exit(0);
for (i=0;i<gTotalFDNEntries;i++)
{
if(strlen((const char*)FDNEntries[i].alpha_id.name) == 0)
strcpy((char*)FDNEntries[i].alpha_id.name,"NULL");
if(strlen((const char*)FDNEntries[i].tel.number) == 0)
strcpy((char*)FDNEntries[i].tel.number, "NULL");
sprintf(str, "%d,%d,%s,%d,%d,%d,%d,%s,%d\n",
FDNEntries[i].index,
FDNEntries[i].record_index,
FDNEntries[i].alpha_id.name,
FDNEntries[i].alpha_id.name_dcs,
FDNEntries[i].alpha_id.name_length,
FDNEntries[i].tel.length,
FDNEntries[i].tel.type,
FDNEntries[i].tel.number,
FDNEntries[i].storage);
fputs(str, pb);
}
fclose(pb);
}
/*If the write req is for the MSISDN*/
if(PbookType == MMI_PHB_MSISDN)
{
pb = fopen("PBookMSISDN.txt", "w");
if(pb == NULL) exit(0);
for(U16 i = 0; i < gTotalPbookEntry; i++)
{
if(strlen((const char*)phbEntries[i].alpha_id.name) == 0)
strcpy((char*)phbEntries[i].alpha_id.name,"NULL");
if(strlen((const char*)phbEntries[i].tel.number) == 0)
strcpy((char*)phbEntries[i].tel.number, "NULL");
sprintf(str, "%d,%d,%s,%d,%d,%d,%d,%s,%d\n",
phbEntries[i].index,
phbEntries[i].record_index,
phbEntries[i].alpha_id.name,
phbEntries[i].alpha_id.name_dcs,
phbEntries[i].alpha_id.name_length,
phbEntries[i].tel.length,
phbEntries[i].tel.type,
phbEntries[i].tel.number,
phbEntries[i].storage);
fputs(str, pb);
}
fclose(pb);
}
}
/*If the request is for PhoneBook-SIM*/
if( setEntryReq->type == MMI_PHB_PHONEBOOK )
{
if (PbookType==1)
{
if( gTotalPbookEntrySim == 0 )
{
pb = fopen("Phonebook_sim.txt", "w");
fclose(pb);
return;
}
pb = fopen("Phonebook_sim.txt", "w+");
if(pb == NULL) exit(0);
for (i=0;i<gTotalPbookEntrySim;i++)
{
if(strlen((const char*)phbEntriesSim[i].alpha_id.name) == 0)
strcpy((char*)phbEntriesSim[i].alpha_id.name,"NULL");
if(strlen((const char*)phbEntriesSim[i].tel.number) == 0)
strcpy((char*)phbEntriesSim[i].tel.number, "NULL");
sprintf(str, "%d,%d,%s,%d,%d,%d,%d,%s,%d\n",
phbEntriesSim[i].index,
phbEntriesSim[i].record_index,
phbEntriesSim[i].alpha_id.name,
phbEntriesSim[i].alpha_id.name_dcs,
phbEntriesSim[i].alpha_id.name_length,
phbEntriesSim[i].tel.length,
phbEntriesSim[i].tel.type,
phbEntriesSim[i].tel.number,
phbEntriesSim[i].storage);
fputs(str, pb);
}
}
/*If the request is for the PhoneBook-Phone*/
if (PbookType==2)
{
if( gTotalPbookEntryPhone == 0 )
{
pb = fopen("Phonebook_phone.txt", "w");
fclose(pb);
return;
}
pb = fopen("Phonebook_phone.txt", "w+");
if(pb == NULL) exit(0);
for (i=0;i<gTotalPbookEntryPhone;i++)
{
if(strlen((const char*)phbEntriesPhone[i].alpha_id.name) == 0)
strcpy((char*)phbEntriesPhone[i].alpha_id.name,"NULL");
if(strlen((const char*)phbEntriesPhone[i].tel.number) == 0)
strcpy((char*)phbEntriesPhone[i].tel.number, "NULL");
sprintf(str, "%d,%d,%s,%d,%d,%d,%d,%s,%d\n",
phbEntriesPhone[i].index,
phbEntriesPhone[i].record_index,
phbEntriesPhone[i].alpha_id.name,
phbEntriesPhone[i].alpha_id.name_dcs,
phbEntriesPhone[i].alpha_id.name_length,
phbEntriesPhone[i].tel.length,
phbEntriesPhone[i].tel.type,
phbEntriesPhone[i].tel.number,
phbEntriesPhone[i].storage);
fputs(str, pb);
}
}
fclose(pb);
}
}
/*****************************************************************************
* FUNCTION
* SetBufferForPbook
* DESCRIPTION
* Fills the incoming message in phone book global buffer
* PARAMETERS
* void * - input buffer pointer.
* RETURNS
* void
*****************************************************************************/
void SetBufferForPbook(void* dataBuf) {
gBuffer = dataBuf;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -