⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1_tread.~cpp

📁 短信发送平台的源码
💻 ~CPP
📖 第 1 页 / 共 3 页
字号:
		return -1;	}	i=j=x=0;	 while(str1[j] != '\0') { 		if(str1[j] == ch) { 			i++;j++;cn++; 		}else j++; 		if(i==n-1) {			cn = 0; 			if(n==1) j--;			while(str1[j] != ch) { 				str2[x] = str1[j];				x++; 				j++;                	}        		str2[x] = '\0';			return cn;                }        }        str2[x] = '\0';        return cn;}//---------------------------------------------------
int TsmsCode(char *s , char *d )
{
 int i=strlen(s) ;
  int j=i%2;
  if(j!=0) s[i]='F';
  for(i=0;i<strlen(s);i=i+2)
  {     if(s[i]=='\0') break;
        d[i]=s[i+1];
        d[i+1]=s[i];
       // Form1->Memo7->Text=Form1->Memo7->Text+d+IntToStr(i);

  }
  i=strlen(d);
  d[i]=0;
}
int TsmsCode2(char *s , char *d )
{
 int i=strlen(s) ;
  int j=i%2;
  if(j!=0) s[i]='F';
  for(i=0;i<strlen(s);i=i+2)
  {     if(s[i]=='/0') break;
        d[i]=s[i+1];
        d[i+1]=s[i];
        //Form1->Memo7->Text=d;

  }
  j=strlen(d)-1;
  if(d[j]=='F') d[j]=0;

}
 String  DecodeChinese(String InputStr)
{
        FILE *fp;
        wchar_t Buf[300];
        memset(Buf,0x00,sizeof(Buf));
        /*
        fp=fopen("./tt.txt","w");
         fprintf(fp,"0===%s\n", InputStr.c_str());
        int ia=strlen(InputStr.c_str());
         fprintf(fp,"i===%d\n", ia);
        ia=ia%4;
        fprintf(fp,"i===%d\n", ia);
        if(ia!=0)
        {
         ia=4-ia;
         for(int j=0;j<ia;j++)
             InputStr="0"+InputStr ;
             fprintf(fp,"1===%s\n", InputStr.c_str());
        }
         fclose(fp);
         */
        for(int i=0;i<InputStr.Length();i=i+4)
        {
                Buf[i/4]=StrToInt("0x"+InputStr.SubString(i+1,4));

        }
         Buf[InputStr.Length()/4]=0;

         
        return WideCharToString(Buf);
}
 int ChaXunDuanXin(char *chaxuncode, char *ShouJiHao2)
 {
   char sms[SMSLEN];
   memset(sms,0,sizeof(sms));

   GetPrivateProfileString("query",chaxuncode,"查询代码错误。",sms,140, "./query/query");
         FILE *fpacc,*fph,*fpd,*fpRecv;
        int accI;
        TDateTime DateTime = Time();
        AnsiString timeS=TimeToStr(DateTime);
        DateTime = Date();
        AnsiString dateS = DateToStr(DateTime);
        AnsiString shijianS;
        shijianS=dateS+' '+timeS;

        char muluS[30],fileNameAcc[40],fileNameH[40],fileNameD[40],fileNameRe[40],accS[10];
        memset(accS,0x00,10);

        CreateDir(dateS.c_str());
        sprintf(muluS,"%s\\new", dateS.c_str()) ;
        CreateDir(muluS);
        sprintf(muluS,"%s\\send", dateS.c_str()) ;
        CreateDir(muluS);
        sprintf(muluS,"%s\\recv", dateS.c_str()) ;
        CreateDir(muluS);
        sprintf(muluS,"%s\\qury", dateS.c_str()) ;
        CreateDir(muluS);
        AnsiString xhead,xdata;
        memset( fileNameAcc,0x00,sizeof(fileNameAcc));
        sprintf(fileNameAcc,"%s\\new\\acc", dateS.c_str()) ;
        //fpacc
        if(FileExists(fileNameAcc))
        {
                fpacc=fopen(fileNameAcc,"r") ;
                fgets(accS,10,fpacc);
                fclose(fpacc);
                accI=atoi(accS);
                if(accI<=0)
                        accI=1;
                else
                        accI++;
        }else
                accI=1;
        //fpRecv
        sprintf(fileNameRe,"%s\\new\\R%d\0", dateS.c_str(),accI) ;
        //if( strlen(shoujihao->Text.c_str())<=0) {ShowMessage("收信人不能为空");return ;}
       // if( strlen(duanxin->Text.c_str())<=0) {ShowMessage("收信内容不能为空");return ;}
        if((fpRecv=fopen(fileNameRe,"w"))==NULL){Sleep(10);fpRecv=fopen(fileNameRe,"w");}
        char filestr[SMSLEN];
        memset(filestr,0x00,sizeof(filestr));
        strcpy(filestr,ShouJiHao2);
        int fileI=0;
        for(;;){
                if(filestr[fileI]==';'&&filestr[fileI+2]!='\n' )
                        filestr[fileI]='\n';
                if(filestr[fileI]=='\0')
                        break;
                fileI++;
        }

        fprintf(fpRecv, "%s",filestr);
        fclose(fpRecv);
        sprintf(fileNameH,"%s\\new\\H%d\0", dateS.c_str(),accI) ;
        //fph
        fph=fopen(fileNameH,"w");
        fprintf(fph,"[HEAD]\n");
        fprintf(fph,"time=%s\n",shijianS.c_str());
        //fprintf(fph,"recv=%s\n",shoujihao->Text);
        //fprintf(fph,"send=%s\n",Edit1->Text);
        fprintf(fph,"send= \n");
        fprintf(fph,"type=查询\n") ;
        fprintf(fph,"stat=未发\n") ;
        fprintf(fph,"jrade=紧急\n") ;
        fclose(fph);
        //fpd
        sprintf(fileNameD,"%s\\new\\DA%d\0", dateS.c_str(),accI) ;
        fpd=fopen(fileNameD,"w");
        fprintf(fpd,"%s",sms);
        fclose(fpd);
        //fpacc
        fpacc=fopen(fileNameAcc,"w") ;
        fprintf(fpacc,"%d",accI);
        fclose(fpacc);
        //ShowMessage(duanxin->Lines);
        //ShowMessage(shijianS);
        //zhou3333(false);
 }
  int GuoLvCh(char *s )
{
 int i=0;
 for(;;)
 {
   if(s[i]=='\r'||s[i]=='\n'||s[i]=='\0')
   {
        s[i]='\0';
        s[i+1]='\0';
        s[i+2]='\0';
        break;
   }
   i++;
 }

}

//英文编码
String __stdcall EncodeEnglish(String InputStr)
{
        int n,len,cur;
        String tempstr,returnstr;
        unsigned char mid1[2],mid2[2];
        len=InputStr.Length();
        n=0;
        for(int i=1;i<=len;i++)
        {
           if (i<len)
           {
             strcpy(mid1,InputStr.SubString(i,1).c_str());
             strcpy(mid2,InputStr.SubString(i+1,1).c_str());
             cur=(mid1[0]>>n)|((mid2[0]<<(7-n))& 0xff);
           }
           else
           {
             strcpy(mid1,InputStr.SubString(i,1).c_str());
             cur=(mid1[0]>>n)& 0x7f;
           }
           FmtStr(tempstr,"%2.2X",ARRAYOFCONST((cur)));
           returnstr=returnstr+tempstr;
           n=(n+1)%7;
           if (n==0)
                   i++;
 		}
return returnstr;
}

int ReturnHex(int Value)
{
        switch (Value)
        {
          case 0:
                Value=0x7f;
                break;
          case 1:
                Value=0x3f;
                break;
          case 2:
                Value=0x1f;
                break;
          case 3:
                Value=0x0f;
                break;
          case 4:
                Value=0x07;
                break;
          case 5:
                Value=0x03;
                break;
          case 6:
                Value=0x01;
                break;
          case 7:
                Value=0x00;
                break;
        }
        return Value;
}
String __stdcall DecodeEnglish (String InputStr)
{
        unsigned char InStr[300];
        char OutStr[300];
        String str;
        int j=0,i=0;
        int Point=0;
        int temp;
        memset(InStr,0,301);
        memset(OutStr,0,301);
        for(int i=0;i<InputStr.Length();i=i+2)
        {
                str="0x"+InputStr.SubString(i+1,2);
                InStr[i/2]=StrToInt(str);
        }
        while(j<=InputStr.Length()/2)
        {
                if(Point==0)
                        OutStr[i]=InStr[j]&ReturnHex(Point);
                else
OutStr[i]=((InStr[j]&ReturnHex(Point))<<Point)|(InStr[j-1]>>(8-Point));
                if(Point%7==0&&Point!=0)
                        Point=0;
                else
                        Point=Point+1;
                i++;
                j=i-(i/8);
 
        }
        OutStr[12]=((InStr[12]&0x07)<<5)|(InStr[11]>>(8-5));
        return AnsiString(OutStr);
}
/*
3、  中文编码
中文编码较为简单,就是将GB2312的中文编码转换为代码页为CP936的Unicode编码即可
以下是C++Builder的实现代码
*/
String  EncodeChinese(String InputStr)
{
 		int cur;
String tempstr,returnstr;
WideString ws;
wchar_t  mid[2];
ws=WideString(InputStr);
for(int i=1;i<=ws.Length();i++)
{
wcscpy(mid,ws.SubString(i,1).c_bstr());
cur=mid[0];
FmtStr(tempstr,"%4.4X",ARRAYOFCONST((cur)));
returnstr=returnstr+tempstr;
}
return returnstr;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -