📄 test_dbf.cpp
字号:
#include "stdafx.h"
#include "test_dbf.h"
//该文件处理写文件的过程(包括数据库定义和写数据库)
void InitDBFFileStruct(FIELD_REC *field_rec)
{
int num = 0;
memset(field_rec, 0, sizeof(field_rec));
Dbf::AddField(field_rec[num++], "ID", 'N', 8);
Dbf::AddField(field_rec[num++], "TIME", 'C', 8);
Dbf::AddField(field_rec[num++], "LON", 'N', 12, 6);
Dbf::AddField(field_rec[num++], "LAT", 'N', 12, 6);
Dbf::AddField(field_rec[num++], "STATUS", 'N', 6);
Dbf::AddField(field_rec[num++], "PROTOCOL", 'N', 4);
Dbf::AddField(field_rec[num++], "MESSAGE", 'C', 30);
Dbf::AddField(field_rec[num++], "SRCSTRING", 'C', 120);
Dbf::AddField(field_rec[num++], "RXLEVF", 'N', 3);
Dbf::AddField(field_rec[num++], "RXQUALF", 'N', 3);
Dbf::AddField(field_rec[num++], "RXLEVS", 'N', 3);
Dbf::AddField(field_rec[num++], "RXQUALS", 'N', 3);
Dbf::AddField(field_rec[num++], "ACTRLINK", 'N', 3);
Dbf::AddField(field_rec[num++], "MAXRLINK", 'N', 3);
Dbf::AddField(field_rec[num++], "C1", 'N', 3);
Dbf::AddField(field_rec[num++], "C2", 'N', 3);
Dbf::AddField(field_rec[num++], "FER", 'N', 5);
Dbf::AddField(field_rec[num++], "NBCCH_1", 'N', 3);
Dbf::AddField(field_rec[num++], "NRXLEV_1", 'N', 3);
Dbf::AddField(field_rec[num++], "NBSIC_1", 'N', 3);
Dbf::AddField(field_rec[num++], "NC1_1", 'N', 3);
Dbf::AddField(field_rec[num++], "NC2_1", 'N', 3);
Dbf::AddField(field_rec[num++], "NBCCH_2", 'N', 3);
Dbf::AddField(field_rec[num++], "NRXLEV_2", 'N', 3);
Dbf::AddField(field_rec[num++], "NBSIC_2", 'N', 3);
Dbf::AddField(field_rec[num++], "NC1_2", 'N', 3);
Dbf::AddField(field_rec[num++], "NC2_2", 'N', 3);
Dbf::AddField(field_rec[num++], "NBCCH_3", 'N', 3);
Dbf::AddField(field_rec[num++], "NRXLEV_3", 'N', 3);
Dbf::AddField(field_rec[num++], "NBSIC_3", 'N', 3);
Dbf::AddField(field_rec[num++], "NC1_3", 'N', 3);
Dbf::AddField(field_rec[num++], "NC2_3", 'N', 3);
Dbf::AddField(field_rec[num++], "NBCCH_4", 'N', 3);
Dbf::AddField(field_rec[num++], "NRXLEV_4", 'N', 3);
Dbf::AddField(field_rec[num++], "NBSIC_4", 'N', 3);
Dbf::AddField(field_rec[num++], "NC1_4", 'N', 3);
Dbf::AddField(field_rec[num++], "NC2_4", 'N', 3);
Dbf::AddField(field_rec[num++], "NBCCH_5", 'N', 3);
Dbf::AddField(field_rec[num++], "NRXLEV_5", 'N', 3);
Dbf::AddField(field_rec[num++], "NBSIC_5", 'N', 3);
Dbf::AddField(field_rec[num++], "NC1_5", 'N', 3);
Dbf::AddField(field_rec[num++], "NC2_5", 'N', 3);
Dbf::AddField(field_rec[num++], "NBCCH_6", 'N', 3);
Dbf::AddField(field_rec[num++], "NRXLEV_6", 'N', 3);
Dbf::AddField(field_rec[num++], "NBSIC_6", 'N', 3);
Dbf::AddField(field_rec[num++], "NC1_6", 'N', 3);
Dbf::AddField(field_rec[num++], "NC2_6", 'N', 3);
Dbf::AddField(field_rec[num++], "NINVALID", 'N', 3);
Dbf::AddField(field_rec[num++], "" , 'C', 1); //end.
}
BOOL OpenDBFFile(DBFFILE &dbf, const char *filename)
{
return dbf.Open(filename, RDONLY);
}
BOOL CreateDBFFile(DBFFILE &dbf, const char *filename)
{
FIELD_REC field_rec[130];
InitDBFFileStruct(field_rec);
if( ! dbf.Create(filename ,field_rec) )
{
printf("cannot create file %s\n", filename);
return FALSE;
}
return TRUE;
}
BOOL WriteDBFFile(DBFFILE &dbf, MAINTESTDATA *pdata)
{
static int dbf_id = 0;
//以下根据标志写数据库。
dbf.ClearRecBuf();
dbf.Append("LON");
dbf.SetFieldValue("ID", dbf_id++ );
dbf.SetFieldValue("STATUS", pdata->Status);
dbf.SetFieldValue("PROTOCOL", pdata->Protocol);
dbf.SetFieldValue("TIME", pdata->Time); //CurTime());
dbf.SetFieldValue("LON", pdata->Lon);
dbf.SetFieldValue("LAT", pdata->Lat);
dbf.SetFieldValue("MESSAGE", pdata->Message);
dbf.SetFieldValue("SRCSTRING", pdata->SrcString);
dbf.SetFieldValue("NUMFRAME", pdata->NumFrame);
dbf.SetFieldValue("TYPEDCH", pdata->TypeDCH);
dbf.SetFieldValue("NUMDCH", pdata->NumDCH);
dbf.SetFieldValue("HOPPING", pdata->Hopping);
dbf.SetFieldValue("MAIODCH", pdata->MaioDCH);
dbf.SetFieldValue("HSNDCH", pdata->HsnDCH );
dbf.SetFieldValue("BSICSERV", pdata->BsicServ);
dbf.SetFieldValue("BCCHSERV", pdata->BcchServ);
dbf.SetFieldValue("CISERV", pdata->CiServ);
dbf.SetFieldValue("LACSERV", pdata->LacServ);
dbf.SetFieldValue("MCCSERV", pdata->MccServ);
dbf.SetFieldValue("MNCSERV", pdata->MncServ);
dbf.SetFieldValue("TA", pdata->Ta);
dbf.SetFieldValue("TS", pdata->Ts);
dbf.SetFieldValue("TXPWR", pdata->TxPower);
dbf.SetFieldValue("RXLEVF", pdata->RxlevF);
dbf.SetFieldValue("RXQUALF", pdata->RxqualF);
dbf.SetFieldValue("RXLEVS", pdata->RxlevS);
dbf.SetFieldValue("RXQUALS", pdata->RxqualS);
dbf.SetFieldValue("ACTRLINK", pdata->ActRlink );
dbf.SetFieldValue("MAXRLINK", pdata->MaxRlink );
dbf.SetFieldValue("C1", pdata->C1);
dbf.SetFieldValue("C2", pdata->C2);
dbf.SetFieldValue("FER", pdata->Fer);
dbf.Update();
return TRUE;
}
BOOL ReadDBFFile(DBFFILE &dbf, MAINTESTDATA *pdata)
{
/* pdata->Status = dbf.GetFieldInt("Status");
pdata->Protocol = dbf.GetFieldInt("Protocol");
dbf.GetFieldString("TIME", pdata->Time);
dbf.GetFieldString("Message" ,pdata->Message);
dbf.GetFieldString("SrcString" ,pdata->SrcString );
pdata->Lon = dbf.GetFieldDouble("Lon");
pdata->Lat = dbf.GetFieldDouble("Lat");
dbf.GetFieldString("NumFrame" , pdata->NumFrame );
dbf.GetFieldString("TypeDCH" ,pdata->TypeDCH );
dbf.GetFieldString("NumDCH", pdata->NumDCH);
dbf.GetFieldString("MaioDCH", pdata->MaioDCH);
dbf.GetFieldString("HsnDCH", pdata->HsnDCH);
//strcpy(pdata->CellServ,
pdata->BsicServ = dbf.GetFieldInt("BsicServ");
pdata->BcchServ = dbf.GetFieldInt("BcchServ");
dbf.GetFieldString("CiServ", pdata->CiServ);
dbf.GetFieldString("LacServ", pdata->LacServ);
dbf.GetFieldString("MccServ", pdata->MccServ);
dbf.GetFieldString("MncServ" ,pdata->MncServ);
pdata->Ta = dbf.GetFieldShort("Ta");
pdata->Ts = dbf.GetFieldShort("Ts");
pdata->RxlevS = dbf.GetFieldShort("RxLevS");
pdata->ActRlink = dbf.GetFieldShort("ActRLink");
pdata->MaxRlink = dbf.GetFieldShort("MaxRLink");
pdata->C1 = dbf.GetFieldShort("C1");
pdata->C2 = dbf.GetFieldShort("C2");
pdata->Fer = dbf.GetFieldShort("Fer");
pdata->TxPower = dbf.GetFieldShort("TxPwr");
pdata->RxlevF = dbf.GetFieldShort("RxLevF");
pdata->RxqualF = dbf.GetFieldShort("RxqualF");
*/
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -