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

📄 function.cpp

📁 Borland c++编写
💻 CPP
📖 第 1 页 / 共 2 页
字号:

   if (ReadData1(DataName,Getval,sz)==0)
    {
      char * pStr=Getval;    
    // strcpy(qd,Getval);
     DTStr[0]=0;
     str[0]=0;

     for(i=0;i<demolength-2;i++)
     {

	memcpy(&dbfitem.number,&sz[4],8);
	dbfitem.st[0]=0;
	dbfitem.ct[0]=0;
	
	if (t<10)
	 {

	   //p=itoa(t,p,10);
	   dbfitem.st[0]=48;
	   dbfitem.st[1]=48+t;
	   dbfitem.ct[0]=48;
	   dbfitem.ct[1]=48+t;
	 }

	else
	 {
	   p=itoa(t,p,10);
	   memcpy(&dbfitem.st[0],p,2);
	   memcpy(&dbfitem.ct[0],p,2);
	 }
	memcpy(&dbfitem.type,&pStr[0],2);
	memcpy(&dbfitem.st[2],&pStr[2],6);
	memcpy(&dbfitem.ct[2],&pStr[8],6);
	AppendRecord(dbfitem);
	pStr+=14;
     } //endfor

     print(Getval,14);

   if (democtrl==0xA1)
   {
      do
      {
       Getval[0]=0;
       if (Supervene(DataName ,Getval,address)==0)
	{
	 char * pStr=Getval;
	 //strcpy(xl90,Getval);
	 DTStr[0]=0;
	 str[0]=0;
	 dbfitem.number[0]=0;
	 memcpy(dbfitem.number,&address[4],8);

	 for(i=0;i<demolength-2;i++)
	 {
	  memcpy(&dbfitem.type,&pStr[0],2);
	  dbfitem.st[0]=0;
	  dbfitem.ct[0]=0;
	  if (t<10)
	   {

	    dbfitem.st[0]=48;
	    dbfitem.st[1]=48+t;
	    dbfitem.ct[0]=48;
	    dbfitem.ct[1]=48+t;
	   }
	  else
	   {
	    p=itoa(t,p,10);
	    memcpy(&dbfitem.st[0],p,2);
	    memcpy(&dbfitem.ct[0],p,2);
	   }
	   memcpy(&dbfitem.st[2],&pStr[2],6);
	   memcpy(&dbfitem.ct[2],&pStr[8],6);
	   AppendRecord(dbfitem);
	   pStr+=14;
	 } //endfor

      
    }//endif;
   }while(democtrl==0xA2);
  }//endif
  }
   else
  {
     printf("%s\n","read meter data error");
     getch();
   //  count++;
  }

  delete [] tr;
  delete [] DataName;
  delete [] address;
  delete [] Getval;
  delete [] sz;
  dbfclose();
  return 0;
}

//六个月需量------------------------------------------------------------------
int lyxl()//读6个月需量;
{
    char * Getval = new char[600];
   // char * Addr =new char[10];
    char * DataName=new char[6];
    char * sz=new char[12];
    char cbs[4];
    int  cont,i;
    char sz1[12];
    unsigned hdsize[4];
 //   Addr[0]=0;
    DataName[0]=0;
    Getval[0]=0;
    hdsize[0]=0;
    i=0;
    cont=0;
    cbs[0]=0;
    sz[0]=0;

    //数据库;
    fhandle=fopen("tlx.dbf","rb+");    
    char fhead[12];
    fread(fhead,12,1,fhandle);
    fhdsize=fhead[8];
    frcsize=fhead[10];
    reccount=fhead[4];

    clrscr();
    strcpy(DataName,"A410" );
  
    printf("%s","wait...");
    getch();

do
 {
  
    if(ReadData(DataName,Getval,sz)==0)
    {
      
      char *xl6=Getval;
     
      memcpy(dbfitem_TLx.bh,&sz[4],8);
      for (i=0;i<6;i++)
       {
	memcpy(dbfitem_TLx.xl,&xl6[0],8);
	memcpy(&dbfitem_TLx.rq,&xl6[8],4);	
	AppendRecord7(dbfitem_TLx);
	xl6+=14;
       }
      printf("success\n");
      cont=18;
      break;
    }
   else  cont++;

}while(cont<3);
print(Getval,14);

 delete [] DataName;
 delete [] sz;
 delete [] Getval;

 dbfclose();
 clrscr();
 return 0 ;
}

//六个月电能*****************************************
int lydn()//读6个电能;
{
     
    char * Getval = new char[100];
    char * DataName=new char[6];
    char * sz=new char[12];
    char cbsj[6];
    int cont,i;

  
    DataName[0]=0;
    cont=0;
    Getval[0]=0;
    sz[0]=0;

    //数据库;
    fhandle=fopen("tld.dbf","rb+");
   
    char fhead[12];
    fread(fhead,12,1,fhandle);
    fhdsize=fhead[8];
    frcsize=fhead[10];
    reccount=fhead[4];

    strcpy(DataName,"9410" );
   
    printf("%s","wait...");
    getch();

 do
 {
   
   
    if(ReadData(DataName,Getval,sz)==0)
    {
     
      char *dn6=Getval;
      memcpy(dbfitem_TLd.bh,&sz[4],8);
      for (i=0;i<6;i++)
       {
	memcpy(dbfitem_TLd.dn,&dn6[0],8);
	memcpy(&dbfitem_TLd.sj,&dn6[8],4);
	AppendRecord8(dbfitem_TLd);
	dn6+=14;
       }
      printf("success\n");
      cont=18;
      break;
    }
   else  cont++;

}while(cont<3);
print(Getval,14);

 delete [] DataName;
 delete [] sz;
 delete [] Getval;
 //delete [] Addr;
 dbfclose();
 clrscr();
 return 0 ;
}
//93天需量************************************************************
int dn60(void) //90天电能;每天48个值即半小时一个值;
{
    char * Getval = new char[600];
    char * DataName=new char[6];
    char * sz = new char [12];
    char * address=new char [12];
    char * tr=new char [14];
    int c;
    char xl90[500];
    int demonum;
    char cbrq[8];
  //  int num90;
    int month,day,hour,min,n;//cont读数据次数;year年数;month字符转换月数;num最后月;month1月转换字符;n循环次数;
    int i,k;
    int error;

    Getval[0]=0;
    DataName[0]=0;
    sz[0]=0;
    address[0]=0;
    demonum=1;
    c=0;
    
      //数据库;
    fhandle=fopen("TXL.dbf","rb+");
    // unsigned tmp;
    char fhead[12];
    fread(fhead,12,1,fhandle);
    fhdsize=fhead[8];
    frcsize=fhead[10];
    reccount=fhead[4];

    strcpy(DataName,"A070" );
  //  strcat(Addr,"99999999");
    printf("%s","wait...");
    getch();
   

  //取抄表时间
  struct date d ;
  getdate (&d);
  char *p;
  char *p1;

  if (d.da_mon<10)
  {
   cbrq[0]=48;
   p1=itoa(d.da_mon,p1,10);
   memcpy(&cbrq[1],p1,1);
  }
  else
  {
   p1=itoa(d.da_mon,p1,10);
   memcpy(&cbrq[0],p1,2);
  }

  if(d.da_day<10)
  {
   cbrq[2]=48;
   p=itoa(d.da_day,p,10);
   memcpy(&cbrq[3],p1,1);
  }
  else
  {
   p1=itoa(d.da_mon,p1,10);
   memcpy(&cbrq[2],p1,2);
  }

  struct time t ;
  gettime (&t);
  char *shi;
  char *sm;
  char *se;

  if (t.ti_hour<10)
  {
    cbrq[4]=48;
    shi=itoa(t.ti_hour,shi,10);
    memcpy(&cbrq[5],shi,1);
  }
  else
  {
   shi=itoa(t.ti_hour,shi,10);
   memcpy(&cbrq[4],shi,2);
  }

  if (t.ti_min<10)
  {
   cbrq[6]=48;
   sm=itoa(t.ti_min,sm,10);
   memcpy(&cbrq[7],sm,1);
  }
  else
  {
   sm=itoa(t.ti_min,sm,10);
   memcpy(&cbrq[6],sm,2);
  }


//读数据
do
 {
  error=ReadData2(DataName,Getval,sz,demonum);
 // error=ReadData3(DataName,Getval,sz);
  if(error==0)
   {
     clrscr();
   //  char *xl90=Getval;
     strcpy(xl90,Getval);
     for (n=0;n<100;n++)
      {
	 memcpy(dbfitem_TDn.datetime,cbrq,8);
	 memcpy(dbfitem_TDn.number,&address[4],8);
	 memcpy(dbfitem_TDn.md1,&xl90[c],4);
	 AppendRecord9(dbfitem_TDn);
	 c+=4;
      }//end for

     //数据显示;
    printf("Success\n");
    print(Getval,12);
    Getval[0]=0;
    xl90[0]=0;
    getch();
    clrscr();
    demonum++;
    }
   else
    {
     int ret;
     address[0]=0;
     getch();
     ret=Reread90(Getval,address);
     if(ret==0)
      {
	clrscr();
	strcpy(xl90,Getval);	
	//取当前标识位
	for (n=0;n<100;n++)
	 {
	  memcpy(dbfitem_TDn.datetime,cbrq,8);
	  memcpy(dbfitem_TDn.number,&address[4],8);
	  memcpy(dbfitem_TDn.md1,&xl90[c],4);
	  AppendRecord9(dbfitem_TDn);
	  c+=4;
	 }//end for
       printf("Success\n");
       print(Getval,12);
       Getval[0]=0;
       xl90[0]=0;
       getch();
       clrscr();
       demonum++;
     }
     else 
     {
       clrscr();
       printf("%d\n",demonum);
       printf("%d\n",error);
       getch();
       demonum=38;
       break;      
     }
    }//endif ret;
 
}while(demonum<36);

 delete []DataName;
 delete []Getval;
 delete []address;
 delete []tr;
 delete []sz;
 dbfclose();
 clrscr();
 return 0;
}
//-----------------------------------------------------
int xbh(void)//向电表中写表号;
{
      clrscr();
      DBF_Tbh  bh;
      char *time=new char[8];
      char *Mc=new char[2];
      char *Addr=new char[8];
    //char *writ=new char[4];
      char *writeName1=new char[4];
      int num,count;
      unsigned tmp;
      char fhead[12];


      writeName1[0]=0;
      time[0]=0;
      Mc[0]=0;
      Addr[0]=0;
      fhandle=fopen("TBH.dbf","r");
      fread(fhead,12,1,fhandle);
      fhdsize=fhead[8];
      frcsize=fhead[10];
      reccount=fhead[4];

      strcat(writeName1, "C032");
      strcat(Addr, "99999999");
      for (num=0;num<reccount;)
      {
	fseek(fhandle,196L+20*num,0);
	fread(&bh,20,1,fhandle);
	//char b1[reccount][2];
	char b1;
       // b1[0]="00000000";
	memcpy(&b1,bh.bh,8);
      //  memcpy(&b1[num][1],bh.lx,1);
	strcat(Mc,&b1);
	clrscr();
	getch();
       do
	{
	 if (writedata1(writeName1,Mc,Addr)==0)
	  {
	   clrscr();
	   printf ("%s","success");
	   getch();
	   count=18;
	   num++;
	  }
	 else
	  {
	   count++;
	  }
	}while(count<3);//enddo
     }//endfor
     dbfclose();
     delete [] writeName1;
     delete [] Mc;
     delete [] Addr;
     clrscr();
     return 0;
}
//************************************************** /
/*int js(void)//向电表中写结算时间;
{
   clrscr();
   DBF_Tjs  js;
   char *Addr=new char[8];
   char *writeName1=new char[4];
   int num,count;
   unsigned tmp;
   char fhead[12];
   char Mc[4];

   writeName1[0]=0;
   Addr[0]=0;
   fhandle=fopen("Tjs.dbf","r");
   fread(fhead,12,1,fhandle);
   fhdsize=fhead[8];
   frcsize=fhead[10];
   reccount=fhead[4];

   strcat(writeName1, "D110");
   strcat(Addr, "99999999");

   fseek(fhandle,196L,0);
   fread(&js,4,1,fhandle);
   memcpy(&Mc,js.balance,4);
   clrscr();
   getch();
   do
    {
     if ( writedata1(writeName1,*Mc,Addr)==0)
      {
	clrscr();
	printf ("%s","success");
	getch();
	count=18;
      }
     else
      {
	count++;
      }
   }while(count<3);//enddo

     dbfclose();
     delete [] writeName1;
     delete [] Mc;
     delete [] Addr;
     clrscr();
     return 0;
}*/

⌨️ 快捷键说明

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