📄 unit1_tread.cpp
字号:
strcat(ss,lens2);
strcat(ss,NeiRong);
fprintf(fpD,"sms_neirong_2=[%s]\n",NeiRong);
fprintf(fpD,"sms_ss=[%s]\n",ss);
char msg2[2];
memset(msg2,0x00,2);
msg2[0]=26;
strcat(ss,msg2);
fprintf(fpD,"--%d,ss_sms=%s\n",strlen(ss),ss);
//if (strlen(ss)>176) ss[176]=26;
//!!!!!!--------------------------------------------
for(int q=0;q<6;q++)
{
fprintf(fpD,"----------------------开始发送---------------%d\n",q);
String str_d="at+cmgs=";
char strmsg[SMSLEN];
memset(strmsg,0,sizeof(strmsg));
//str_d=str_d+IntToStr(fasongLENS)+"\r\n";
//str_d=str_d+IntToStr(strlen(ss))+"\r\n";
str_d=str_d+"176\r\n";
strcpy(strmsg,str_d.c_str());
fprintf(fpD,"cmgs=%s\n",strmsg);
Sleep(3000);
WriteFile( hCom,strmsg,strlen(strmsg),&ByteCount,NULL);
strcpy(strmsg,ss);
/*
char msg2[2];
memset(msg2,0x00,2);
msg2[0]=26;
strcat(strmsg,msg2);
*/
fprintf(fpD,"~~~~~~~~~~~~~cmgs=%s\n",strmsg); fflush(fpD);
Sleep(500);
WriteFile( hCom,strmsg,strlen(strmsg),&ByteCount,NULL);
Sleep(3000);
char mm[10240]="\0";
memset(mm,0x00,sizeof(mm));
for(;;)
{
memset(strmsg,0x00,sizeof(strmsg));
ReadFile( hCom,strmsg,SMSLEN,&ByteCount,NULL);
strcat(mm,strmsg);
if(strlen(strmsg)<SMSLEN) break;
}
int ww=strlen(mm)-4;
fprintf(fpD,"str_end=%s\n",(char *)&mm[ww]);fflush(fpD);
fprintf(fpD,"read_com1(cmgs)=%s\n",mm);
fprintf(fpD,"---------------------- 发送结束---------------\n");
if(mm[ww]=='O'&&mm[ww+1]=='K'){
Form1->Memo7->Text=SJH+" " +IntToStr(q)+" 发送成功.\r\n"+ Form1->Memo7->Text;
break;
}else Form1->Memo7->Text=SJH+" " +IntToStr(q)+" 发送失败!!!!!\r\n"+ Form1->Memo7->Text;
}
//!!!!!!--------------------------------------------
}
fclose(fp);
// 修改已发送数量的文件
sprintf(fileName,"%s\\send\\acc\0", dateS.c_str() ) ;
fp=fopen(fileName,"w") ;
fprintf(fp,"%d",i);
fclose(fp);
fprintf(fpD,"####end....%d,accI_new=%d,accI_recv=%d,acc_send=%d\n",i,accI_new,accI_recv,accI_send);
} //for(int i=accI_send+1;acci<=accI_new;acci++)
// 修改已发送数量的文件
fprintf(fpD,"accI_new=%d,accI_recv=%d,acc_send=%d\n",accI_new,accI_recv,accI_send);
fprintf(fpD,"发送的个数 !!!!!!!!!!!!!=%d\n",accI_new);
fflush(fpD);
sprintf(fileName,"%s\\send\\acc\0", dateS.c_str() ) ;
fp=fopen(fileName,"w") ;
fprintf(fp,"%d",accI_new);
//Form1->Memo7->Text=Form1->Memo7->Text+"发送的个数:"+IntToStr(accI_new)+"\r\n";
fclose(fp);
fprintf(fpD,"===============================================accI_new=%d\n",accI_new);
fflush(fpD);
//判断是否有来信。。。。。。。。。。。。。。
char mmm[10240];
char strmsg[SMSLEN] ;
memset(strmsg,0,sizeof(strmsg));
strcat(strmsg,"at+cmgl=0\r\n");
Sleep(3000);
WriteFile( hCom,strmsg,strlen(strmsg),&ByteCount,NULL);
fprintf(fpD,"read_cmgl_start... \n" ); fflush(fpD);
memset(mmm,0x00,sizeof(mmm));
char sttmp[SMSLEN];
String Smmm;
for(;;)
{
strcpy(sttmp,strmsg);
memset(strmsg,0x00,sizeof(strmsg));
Sleep(3000);
ReadFile( hCom,strmsg,SMSLEN,&ByteCount,NULL);
fprintf(fpD,"strmsg--####=%s\n",strmsg); fflush(fpD);
if(strcmp(sttmp,strmsg)!=0)
Smmm=Smmm+strmsg;
strcpy(mmm,Smmm.c_str());
fprintf(fpD,"---------------------mmm-@@@@=%s\n",mmm); fflush(fpD);
if(strlen(strmsg)<SMSLEN) break;
//PurgeComm( hCom, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR| PURGE_RXCLEAR ); //清干净输入、输出缓冲区
}
fprintf(fpD,"read....#############cmgl=%s\n",mmm); fflush(fpD);
int ww=strlen(mmm)-3;
fprintf(fpD,"str_end=%s\n",(char *)&mmm[ww]);fflush(fpD);
int i=2,j,acci=0;
char strmsg1[SMSLEN];
for(;;)
{
FILE *fpr ;
FILE *fpda ;
FILE *fpacc ;
FILE *fphh ;
fprintf(fpD,"--------------star.... \n" ); fflush(fpD);
j=Tgetstring( mmm, i,strmsg,'\n');
fprintf(fpD,"j=%d,jjjjjj.... =%s\n",j,strmsg); fflush(fpD);
if(j==-1) break;
j=Tgetstring( strmsg, 1,strmsg1,',');
fprintf(fpD,"j=%d,jjjjjj.... =%s\n",j,strmsg1); fflush(fpD);
if(j==-1) break;
char sends[50];
memset(sends,0,50);
strcpy(sends,"at+cmgd=");
strcat(sends,(char *)&strmsg1[7]);
strcat(sends,"\r\n");
fprintf(fpD,"sends.... =%s\n",sends); fflush(fpD);
//Sleep(3000);
//delete sms
Sleep(3000);
WriteFile( hCom,sends,strlen(sends),&ByteCount,NULL);
Sleep(3000);
memset(strmsg,0x00,sizeof(strmsg));
ReadFile( hCom,strmsg,SMSLEN,&ByteCount,NULL);
fprintf(fpD,"read....cmgdl=%s\n",strmsg); fflush(fpD) ;
i++;
memset(strmsg,0x00,sizeof(strmsg));
j=Tgetstring( mmm, i,strmsg,'\n');
fprintf(fpD,"index=%d,cmgdl=%s\n",i,strmsg); fflush(fpD);
if(j==-1) break;
i++;
//纪录接收的数据
//if ( )
acci++;
memset(ShouJiHao,0,sizeof(ShouJiHao));
memcpy(ShouJiHao,(char *)&strmsg[26],12);
fprintf(fpD,"手机号=%s\n",ShouJiHao); fflush(fpD);
memset(ShouJiHao2,0,sizeof(ShouJiHao2));
TsmsCode2(ShouJiHao ,ShouJiHao2);
//ShouJiHao2[12]='\0';
sprintf(fileName,"%s\\recv\\R%d\0", dateS.c_str(),accI_recv+acci ) ;
if((fpr=fopen(fileName,"w"))==NULL)
fprintf(fpD,"filename_err=%s\n",fileName); fflush(fpD);
sprintf(fileName,"%s\\recv\\DA%d\0", dateS.c_str(),accI_recv+acci ) ;
if((fpda=fopen(fileName,"w"))==NULL)
fprintf(fpD,"filename_err=%s\n",fileName); fflush(fpD);
sprintf(fileName,"%s\\recv\\acc\0", dateS.c_str() ) ;
if((fpacc=fopen(fileName,"w"))==NULL)
fprintf(fpD,"filename_err=%s\n",fileName); fflush(fpD);
sprintf(fileName,"%s\\recv\\H%d\0", dateS.c_str(),accI_recv+acci) ;
fprintf(fpr ,"%s",ShouJiHao2);
//-------------------------------------------------
char NRS[2];
int NRI=58;
memcpy(NRS, (char *)&strmsg[20],2);
NRS[2]='\0';
if(atoi(NRS)==4||atoi(NRS)==3) NRI=48;
if(atoi(NRS)==5||atoi(NRS)==6) NRI=50;
if(atoi(NRS)==7||atoi(NRS)==8) NRI=52;
if(atoi(NRS)==9||strcmp(NRS,"0A")==0) NRI=54;
if(strcmp(NRS,"0B")==0||strcmp(NRS,"0C")==0) NRI=56;
fprintf(fpD ,"NRS=[%s],NRI=%d\n",NRS,NRI);
//------------------------------------------------
strcpy(NeiRong,(char *)&strmsg[NRI]);
fprintf(fpD,"内容=%s\n",NeiRong); fflush(fpD);
int itmp1=strlen(NeiRong)-1;
NeiRong[itmp1]='\0';
//strcat(NeiRong,"3002");
String NeiRong2;
char CodeType[4];
memcpy(CodeType,(char *)&strmsg[38],4);
CodeType[4]='\0';
fprintf(fpD,"CodeType =[%s]\n",CodeType);
//--------内容转换-------------------------------------
if(strcmp( CodeType,"0000")==0)
NeiRong2=DecodeEnglish(NeiRong);
else
NeiRong2=DecodeChinese(NeiRong) ;
//----------内容转换-----------------------------------
fprintf(fpD,"内容=%s\n",NeiRong2.c_str()); fflush(fpD);
fprintf(fpda,"%s",NeiRong2.c_str());
fprintf(fpacc,"%d",accI_recv+acci);
fprintf(fpD,"filename3=%s\n",fileName); fflush(fpD);
char chaxuncode[4],strmm[SMSLEN];
memset( chaxuncode,0,sizeof(chaxuncode));
memset( strmm,0,sizeof(strmm));
strcpy(strmm,NeiRong2.c_str());
if(strmm[0]=='*')
{
memcpy(chaxuncode,(char *)&strmm[1],4);
chaxuncode[4]='\0';
fprintf(fpD,"查询短信内容=[%s],[%s],[%s]\n",strmm,chaxuncode,ShouJiHao2);
ChaXunDuanXin(chaxuncode, ShouJiHao2);
}
fprintf(fpD,"chaxuncode=%s,ShouJiHao2=%s\n",strmm,ShouJiHao2); fflush(fpD);
DateTime = Time();
timeS=TimeToStr(DateTime);
shijianS=dateS+' '+timeS;
if(Form1->Memo7->Text.Length()>20480) Form1->Memo7->Text="\r\n";
Form1->Memo7->Text=IntToStr(accI_recv+acci)+" : "+ shijianS+" "+ ShouJiHao2+"\r\n "+NeiRong2+"\r\n\r\n"+Form1->Memo7->Text;
if((fphh=fopen(fileName,"w"))==NULL)
fprintf(fpD,"filename_err=%s\n",fileName); fflush(fpD);
fprintf(fphh,"[HEAD]\n"); fflush(fphh);
// fprintf(fph,"[HEAD]\n");
fprintf(fphh,"time=%s\n",shijianS.c_str());
fprintf(fphh,"send= \n");
/*
if(strmm[0]=='*')
fprintf(fph,"type=查询 \n") ;
else
fprintf(fph,"type= \n") ;
*/
fprintf(fphh,"stat= \n") ;
fprintf(fphh,"jrade= \n") ;
fflush(fphh);
fprintf(fpD,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!=%d,%d\n",accI_recv+acci,acci); fflush(fpD);
if(fclose(fpr)==NULL)
fprintf(fpD,"fpr =%d,%d\n",accI_recv+acci,acci); fflush(fpD);
if(fclose(fpda)==NULL)
fprintf(fpD,"fpda =%d,%d\n",accI_recv+acci,acci); fflush(fpD);
if(fclose(fpacc)==NULL)
fprintf(fpD,"fpacc =%d,%d\n",accI_recv+acci,acci); fflush(fpD);
if(fclose(fphh)==NULL)
fprintf(fpD,"fph =%d,%d\n",accI_recv+acci,acci); fflush(fpD);
//Sleep(1000);
}
fflush(fpD);
}//for(;;)
fclose(fpD);
}else//if(SetCommState(hCom,&dcb))
{
Form1->Caption="中正sms客户管理系统 ";
Form1->Memo7->Text= "!!! 数据线没有准备好,或COM口忙!\r\n!!! 请先关闭系统,检查后重试!\r\n";
}
}else //if(hCom)
{
Form1->Memo7->Text= "数据线没有准备好,或COM口忙!\r\n数据线没有准备好,或COM口忙!请先关闭系统,检查后重试!\r\n\r\n";
}
CloseHandle(hCom);
}
//---------------------------------------------------------------------------
int Tgetstring( char *str1, int n,char *str2,char ch)
{ int i =0,j=0,x=0, cn=0; while(str1[i] != '\0') { if(str1[i] == ch) cn++; i++; } if(cn<n || n<=0){ strcpy(str2,str1); #if bo == 1 printf("getstring__cn==========================<%d>\n",cn); #endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -