📄 newwalk1.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 + -