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

📄 newwalk1.cpp

📁 Borland c++编写
💻 CPP
字号:
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include "dos.h"
#include <io.h>
#include <fcntl.h>
#include "commplus.h"
#include <htlcd.h>
#include <htxlcd.h>
#include "htproces.h"
#include "Function.h"
#include "SUBFUN.h"
#include <String.h>
#define _filename       "d:\\QDtable.dbf"


typedef struct {
  char  Meterno[8];
  unsigned char  Flag;
  char  StartDateTime[14];
  char  EndDateTime[14];
} DBF_REC;

/*typedef struct {
  char  Meterno[9];
  unsigned char  Flag;
  unsigned char  StartDateTime[20];
  unsigned char  EndDateTime[20];
} C_REC;
  */
extern unsigned _stklen  = 32768U;
extern unsigned _heaplen = 1024U;

long fhdsize;
long frcsize;
long reccount;

FILE * fhandle;

DBF_REC dbfitem;
//C_REC thisitem;

/*int putdatetime(char *todt,char *dt)
{
 memcpy(dt,todt,4);
 todt[4]='\';
 memcpy(dt+4,todt+5,2);
 todt[7]='\';
 memcpy(dt+6,todt+8,2);
 todt[10]=' ';
 memcpy(dt+8,todt+11,2);
 todt[13]=': ';
 memcpy(dt+10,todt+14,2);
 todt[16]=':';
 memcpy(dt+12,todt+17,2);
 todt[19]=' ';
 memcpy(dt+14,todt+20,2);
 return 1;
} */

void strstore(char *src,char * dest, int len)
{
   int i,j;
   i=strlen(src);
   if (i>len) i=len;
   for (j=0;j<i;j++)
     *dest++=*src++;
     while (j<len)  {
     *dest++=' ';
     j++;
     }
}



/*int dbf2c(C_REC &crecord)
//int dbf2c(C_REC &c,DBF_REC &dbf)
{
//  memcpy(dbf.Meterno,c.Meterno,8);
//  c.Meterno[9]=0;
//  dbf.Flag=c.Flag;
 putdatetime (crecord.StartDateTime,dbfitem.StartDateTime);
 putdatetime (crecord.EndDateTime,dbfitem.EndDateTime);
 strstore(crecord.Meterno,dbfitem.Meterno,8);
 dbfitem.Flag=crecord.Flag;
// strstore(c.StartDateTime,dbf.StartDateTime,14);
//strstore(c.EndDateTime,dbf.EndDateTime,14);

  return 1;
  } */
int dbfopen(FILE * fhdl, long *fhdsize,
	    long *frcsize, long *reccount)
{
  unsigned tmp;
  char fhead[12];
  //unsigned char * fbuff=new char [255];
  //fread(fbuff,255,1,fhdl);
  fwrite(fhead,12,1,fhdl);
  //delete [] fbuff;
  *fhdsize=* (unsigned *)&fhead[8];
  *frcsize=* (unsigned *)&fhead[10];
  *reccount=* (unsigned *)&fhead[4];
  return(0);
}

void AppendRecord (DBF_REC &crecord)
{
  fseek(fhandle,4L,0);
  long recount;
  fread(&recount,sizeof(long),1,fhandle);
  recount++;
  fseek(fhandle,4L,0);
  fwrite(&recount,sizeof(long),1,fhandle);
  fseek(fhandle,-1,2);
  char buff[38];
  buff[0]=0X20;
  memcpy(&buff[1],&crecord,38);
  fwrite(buff,38,1,fhandle);
  fseek(fhandle,0,2);
  buff[0]=0x1A;
  fwrite(&buff[0],1,1,fhandle);
}

void dbfclose(void)
{
  fclose(fhandle);
}
void beep(int cnt)
{
  int i;

  for (i=0; i<cnt; i++)
    asm {
      mov  ax, 0e07h
      int  10h
    }
}
 int main()
{
  fhandle=fopen(_filename,"rb+");
   unsigned tmp;
    char fhead[12];
    fread(fhead,12,1,fhandle);
    fhdsize=fhead[8];
    frcsize=fhead[10];
    reccount=fhead[4];

  //read meter______________________________________________
   char * DataName=new char[6];

   DataName[0]=0;
   strcat(DataName, "9270");
   char * Getval = new char[600];
   char * Addr =new char[10];
   Addr[0]=0;
   strcat(Addr,"99999999");
   printf("%s","wait...");
   getch();
 //  int i=1;
  char * TStr=new char [10];
	int k=1;
   if(ReadData(DataName,Getval,Addr)==0)
   {
     while(strlen( Getval)!=0)
     {

       memcpy(TStr,Getval,10);
       TStr[10]=0;
       printf("%d:%s\n",k,TStr);
       getch();
       Getval+=10;
       k++;
     }

    // char data[19][12];
   // printf("%s","wait...");
    //  memcpy(data,Getval,260);
    //  printf("%s",Getval);
    // memcpy(data,Getval,strlen(Getval));
     int i,j;
     char DTStr[3];
     memcpy(dbfitem.Meterno,&Addr[3],8);
     for(i=0;i<=19;i++)
     {
     //  dbfitem.Flag=data[i][0];
       dbfitem.Flag=Getval[(i*13)];
      strcpy(dbfitem.StartDateTime,"20");
      strcpy(dbfitem.EndDateTime,"20");

      for(j=1;j<=12;j++)
       {
      //	 Byte2Hex(data[i][j],DTStr);
	 if(j<=6)
	   memcpy(&dbfitem.StartDateTime[(j-1)*2+2],Getval,2);
	 else
	   memcpy(&dbfitem.EndDateTime[(j-7)*2+2],Getval,2);
       } //for */
      AppendRecord(dbfitem);
    } //for

     getch();
    //  } //while
 }
    else
   {
     printf("%s","read meter data error\n");
     getch();
   }
   delete [] DataName;
   delete [] Getval;
   delete [] Addr;
   delete  [] TStr;


/* delete [] DataName;
     delete [] Getval;
     delete [] Addr;
 if(ReadData(DataName,Getval,Addr))
    {
     char data[19][12];
     printf("%s","wait...");
     memcpy(data,Getval,260);
     //printf("%s",Getval);
     int i,j;
     char DTStr[3];
     memcpy(dbfitem.Meterno,&Addr[3],8);
     for(i=0;i<20;i++)
     {
       dbfitem.Flag=data[i][0];
       strcpy(dbfitem.StartDateTime,"20");
       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-1)*2+2],DTStr,2);
       }
     }
     getch();
   }else
   {
     printf("%s","read meter data error\n");
   }
   delete [] DataName;
   delete [] Getval;
   delete [] Addr;
  end
**********************************************

    m=0;
    char *meter=new char[14];
    for (m=0;m<=3;m++)
    {
    meter="12345678";
    memcpy(dbfitem.Meterno,meter,8);
    dbfitem.Flag='5';
    meter="20021003090801";
    memcpy( dbfitem.StartDateTime,meter,14);
    meter="20021228100801";
    memcpy( dbfitem.EndDateTime,meter,14);
    fseek(fhandle,161L,0);
  }*/
//  AppendRecord(dbfitem);

//  delete [] meter;
  dbfclose();
   return(1);
}


⌨️ 快捷键说明

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