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

📄 function1.cpp

📁 Borland c++编写
💻 CPP
📖 第 1 页 / 共 3 页
字号:
 char * DataName=new char[6];
 char * Getval = new char[6000];
 char * Addr =new char[10];
 char xttime[2];
 char xtdate[2];
 char dq[20];
 
 //DBF_Tss dbfitem;

 DataName[0]=0;
 Addr[0]=0;
 Getval[0]=0;
 i=0;
 cont=0;
 //取系统时间;
 struct date d;
 struct time t;
 getdate(&d);
 gettime(&t);

 xttime[0]= t.ti_hour;
 xttime[1]= t.ti_min;
 xttime[2]= t.ti_sec;

 xtdate[0]= d.da_year;
 xtdate[1]= d.da_mon;
 xtdate[2]= d.da_day;

 //数据库;
 fhandle=fopen("Tss.dbf","rb+");      //以可读写方式打开数据库;
 unsigned tmp;
 char fhead[12];
 fread(fhead,12,1,fhandle);
 fhdsize=fhead[8];
 frcsize=fhead[10];
 reccount=fhead[4];

//自动读数据;
  clrscr();
  printf("wait...");
  getch();
  strcat(DataName,sdbs[0]);
  for (i=0;i<16;)
  {      
   for (cont=0;cont<3;)
   {
    if(ReadData(DataName,Getval,Addr)==0)
     {  
     	memcpy(&dq[i],Getval,strlen(Getval));
        DataName[0]=0;
        Getval[0]=0;
           }
     else
       {
	cont++;	
     }
   }//for cont
  i++;
  strcat(DataName, sdbs[i]);
  }//for i
//写数据库;
 memcpy(dbfitem_Tss.number,&Addr[3],8);
 memcpy(dbfitem_Tss.time,xttime,6);
 memcpy(dbfitem_Tss.date,xtdate,6);
 memcpy(dbfitem_Tss.lidn,&dq[0],8);
 memcpy(dbfitem_Tss.md,&dq[1],6);
 memcpy(dbfitem_Tss.glys,&dq[2],6);
 memcpy(dbfitem_Tss.axdy,&dq[3],6);
 memcpy(dbfitem_Tss.bxdy,&dq[4],6);
 memcpy(dbfitem_Tss.cxdy,&dq[5],6);
 memcpy(dbfitem_Tss.axdl,&dq[6],6);
 memcpy(dbfitem_Tss.bxdl,&dq[7],6);
 memcpy(dbfitem_Tss.cxdl,&dq[8],6);
 memcpy(dbfitem_Tss.yggl,&dq[9],6);
 memcpy(dbfitem_Tss.axgl,&dq[10],6);
 memcpy(dbfitem_Tss.bxgl,&dq[11],6);
 memcpy(dbfitem_Tss.cxgl,&dq[12],6);
 memcpy(dbfitem_Tss.axys,&dq[13],6);
 memcpy(dbfitem_Tss.bxys,&dq[14],6);
 memcpy(dbfitem_Tss.cxys,&dq[15],6);
 AppendRecord1(dbfitem_Tss);
 printf("success");
 getch();
 delete []DataName;
 delete []Getval;
 delete []Addr;
 dbfclose();
 return 0;
}
//-------------------------------------------------------------------------------------------
int jssj(void)//结算数据库;
{
   static char *sdjs[]={
    "9010",          //正向有功电能;
    "A010",          //最大需量;
    "B010",          //结算时间;
   };

    int cont,i;
    char * DataName=new char[6];
    char * Getval = new char[600];
    char * Addr =new char[10];
    char js[10];
    char xttime[2];
    char xtdate[2];
    
   // DBF_Tjs dbfitem;
    
    DataName[0]=0;
    Addr[0]=0;
    Getval[0]=0;
    i=0;
    cont=0;
    //取系统时间;
    struct date d;
    struct time t;
    getdate(&d);
    gettime(&t);

    xttime[0]= t.ti_hour;
    xttime[1]= t.ti_min;
    xttime[2]= t.ti_sec;

    xtdate[0]= d.da_year;
    xtdate[1]= d.da_mon;
    xtdate[2]= d.da_day;

    //数据库;
    fhandle=fopen("Tjs.dbf","rb+");
    unsigned tmp;
    char fhead[12];
    fread(fhead,12,1,fhandle);
    fhdsize=fhead[8];
    frcsize=fhead[10];
    reccount=fhead[4];
  
    clrscr();	
    printf("%s","wait...");
    getch();
    strcat(DataName, sdjs[0]);
    for (i=0;i<4;)
    {
      for (cont=0;cont<3;)
      {
       if(ReadData(DataName,Getval,Addr)==0)
         {
          memcpy(&js[i],Getval,strlen(Getval));
          DataName[0]=0;
          Getval[0]=0;
         }
        else
        {
	  cont++;
        }
        }//for cont
        i++;
        strcat(DataName, sdjs[i]);
        }//for i


     memcpy(dbfitem_Tjs.number,&Addr[3],8);
     memcpy(&dbfitem_Tjs.jssj,xtdate,6);
     memcpy(&dbfitem_Tjs.ygdn,&js[0],6);
     memcpy(&dbfitem_Tjs.ygdn,&js[1],6);
     memcpy(&dbfitem_Tjs.fssj,&js[2],12);
     AppendRecord2(dbfitem_Tjs);
     printf("%s","success");
    // break;

   delete [] DataName;
   delete [] Getval;
   delete [] Addr;
  dbfclose();
   return 0 ;
}

//--------------------------------------------------------------------------------------------
//读窃电
int qdsj(void)
{
    clrscr();
    #ifdef DEBUG
    fhandle=fopen("QDtable.dbf","rb+");
    #else
    fhandle=fopen("d:\\QDtable.dbf","rb+");
    #endif
    unsigned tmp;
    char fhead[12];
    fread(fhead,12,1,fhandle);
    fhdsize=fhead[8];
    frcsize=fhead[10];
    reccount=fhead[4];
    
    DBF_REC dbfitem;

    char * DataName=new char[6];
    char * Getval = new char[6000];
    char * Addr =new char[10];
    //char * tr=new char [10];

    Getval[0]=0;
    DataName[0]=0;
    Addr[0]=0;
    char * tr=new char [10];
    strcat(DataName, "9270");
    strcat(Addr,"99999999");
    printf("%s","wait...");
    getch();

    //memcpy ( dbfitem.Meterno,Addr,8);
 if (ReadData(DataName,Getval,Addr)==0)
 {
     char *pStr=Getval;
     int i;
     char str[3];
     char DTStr[3];
     memcpy(dbfitem.Meterno,Addr,8); //&Addr[3]
     for(i=0;i<20;i++)
     {
       dbfitem.Flag=(pStr[0]-48)*10+(pStr[1]-48);
       dbfitem.StartDateTime[0]=0;
       dbfitem.EndDateTime[0]=0;
       strcpy(dbfitem.StartDateTime,"20");
       strcpy(dbfitem.EndDateTime,"20");
       memcpy(&dbfitem.StartDateTime[2],&pStr[2],12);
       memcpy(&dbfitem.EndDateTime[2],&pStr[14],12);
       pStr+=26;
       /*for(j=1;j<=12;j++)
	 {
	   Byte2Hex(data[i][j],DTStr);
	   if(j<=6)
	      memcpy(&dbfitem.StartDateTime[(j-1)*2+2],DTStr,2);
	   else
	      memcpy(&dbfitem.EndDateTime[(j-7)*2+2],DTStr,2);
	 } //for
       */
       AppendRecord(dbfitem);
     } //for
     getch();
     int k=1;
     while(strlen(Getval)!=0)
     {
       memcpy(tr,Getval,10);
       tr[10]=0;
       printf("%d:%s\n",k,tr);
       getch();
       Getval+=10;
       k++;
     }
  }
 /*   else
   {
     printf("%s","read meter data error\n");
     getch();
   }*/
  delete [] DataName;
  delete [] Getval;
  delete [] Addr;
  delete [] tr;
  dbfclose();
  return (0);
}
//-------------------------------------------------------------------------------------------
int  flwrite() //设置时段费率 ;
 {
      static char *sdsd[]={
	   "C331",          //时段1;
	   "C332",          //时段2;
	   "C333",          //时段3;
	   "C334",          //时段4;
	   "C335",          //时段5;
	   "C336",          //时段6;
	   "C337",          //时段7;
	   "C338",          //时段8;
       };

      int i,j,cont;
      char *time=new char[3];
      char *cost=new char[1];
      char *Addr=new char[8];
      char *writeName=new char[3];
      char fhead[12];
      char Td[7][1];
      char Mc[1],Mc1[1];
      DBF_Tsd dbfitem;

    //  struct sdk * start;
     // struct sdk * last;
      struct sdk *find(char * Mc);
      struct sdk * info;

      writeName[0]=0;
      time[0]=0;
      cost[0]=0;
      Addr[0]=0;
      cont=0;
     // start = last = NULL;
      fhandle=fopen("Tsd.dbf","r");
  // if ((fhandle= fopen("Tsd.dbf","r")==NULL) exit[0];
     //  getc(Mc);
      fread(fhead,12,1,fhandle);
      fhdsize=fhead[8];
      frcsize=fhead[10];
      reccount=fhead[4];
      Mc[0]=getch();
      if (!(info=find(Mc)))
	 printf("not found\n");
      else
	{  fread (info,sizeof(struct sdk),1,fhandle);
	   getdatetime(Td[0],info->Td0);
	   getdatetime(Td[1],info->Td1);
	   getdatetime(Td[2],info->Td2);
	   getdatetime(Td[3],info->Td3);
	   getdatetime(Td[4],info->Td4);
	   getdatetime(Td[5],info->Td5);
	   getdatetime(Td[6],info->Td6);
	   getdatetime(Td[7],info->Td7);
	}



       //设定时段;

     for (i=0;i<8;)
       {

	  if (strlen(Td[i])!=NULL)
	  {
	      strcat(writeName, sdsd[i]);
	      strcat(Addr, "99999999");
	      memcpy(time,&Td[i][0],4);
	      memcpy(cost,&Td[i][1],1);
	      clrscr();
	      printf("wait...");
	      getch();
	    for (cont=0;cont<3;)
	    {
	      if ( writeData(writeName,time,cost,Addr))
		 {
			  //	clrscr();
		      printf ("success");
		      getch();
		      //  break;

		      writeName[0]=0;
		      time[0]=0;
		      //Addr[0]=0;
		 }
	     else
	     {
		cont++;
	     }
	   }
	 }
      }
 //写套数;
 strcat(writeName, "E010");
// strcat(time, todt);
// strcat(cost,fl);
 strcat(Addr, "99999999");
 clrscr();
 getch();
 if ( writedata1(writeName,Mc,Addr))
   {
      //	clrscr();
      printf ("success");
      getch();
      //  break;
    }
      delete []writeName;
      delete []time;
      delete []Addr;
      dbfclose();
      return 0;
 }
//-------------------------------------------------------------------------------------------
int flread(void)//读费率电能;
{
   static char * sdfl[]={
       "9011",          //费率1;
       "9012",          //费率2;
       "9013",          //费率3;
       "9014",          //费率4;
       "9015",          //费率5;
       "9016",          //费率6;
       "9017",          //费率7;
       "9018",          //费率8;
       "E010",          //时段套数;
      } ;
    char * Getval = new char[100];
    char * Addr =new char[10];
    char * DataName=new char[6];
    char fl[8];
    char lx[1];
    int cont,i;
    
    //DBF_Tfl dbfitem;
    
    Getval[0]=0;
    Addr[0]=0;
   // lx[0]="T";
    DataName[0]=0;
    i=0;
    cont=0;
    //数据库;
    fhandle=fopen("Tfl.dbf","rb+");
    unsigned tmp;
    char fhead[12];
    fread(fhead,12,1,fhandle);
    fhdsize=fhead[8];
    frcsize=fhead[10];
    reccount=fhead[4];

    
     strcat(DataName, sdfl[0]);	  //读费率1
     strcat(Addr,"99999999");
     clrscr();
     printf("%s","wait...");
     getch();
     for (i=0;i<8;)
     {
       for (cont=0;cont<3;)
       {
        if(ReadData(DataName,Getval,Addr))
	{

	  memcpy(&fl[i],Getval,strlen(Getval));
	  DataName[0]=0;
	  Getval[0]=0;

	  }
       else
	{
	  cont++;
	}
       }
      i++;
      strcat(DataName, sdfl[i]);
     }//for

      memcpy(dbfitem_Tfl.BH,&Addr[3],8);
      memcpy(dbfitem_Tfl.DN1,&fl[0],8);
      memcpy(dbfitem_Tfl.DN2,&fl[1],8);
      memcpy(dbfitem_Tfl.DN3,&fl[2],8);
      memcpy(dbfitem_Tfl.DN4,&fl[3],8);
      memcpy(dbfitem_Tfl.DN5,&fl[4],8);
      memcpy(dbfitem_Tfl.DN6,&fl[5],8);
      memcpy(dbfitem_Tfl.DN7,&fl[6],8);
      memcpy(dbfitem_Tfl.DN8,&fl[7],8);
      memcpy(dbfitem_Tfl.TS,&fl[8],1);
      memcpy(dbfitem_Tfl.LX,&lx,1);
      AppendRecord3(dbfitem_Tfl);
      printf("read data success");
      getch();
      delete [] DataName;
      delete [] Getval;
      delete [] Addr;
      return 0;
 }
//--------------------------------------------------------------------------------
int bcs(void) //读表参数;
{
  static char * sdbc[]={
       "C032",          //表号;
       "C034",          //设备号;
       "C030",          //表常数;
       "C010",          //日期周次;
       "C011",          //时间;
       "B210",          //编程时间;
       "B211",          //清零时间;

⌨️ 快捷键说明

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