📄 datasavewnd.cpp
字号:
// DataSaveWnd.cpp : implementation file
//
#include "stdafx.h"
#include "DataSaveWnd.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDataSaveWnd
CDataSaveWnd::CDataSaveWnd()
{
}
CDataSaveWnd::~CDataSaveWnd()
{
db.Close();
}
BEGIN_MESSAGE_MAP(CDataSaveWnd, CWnd)
//{{AFX_MSG_MAP(CDataSaveWnd)
ON_WM_TIMER()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDataSaveWnd message handlers
BOOL CDataSaveWnd::Create(CWnd* pParentWnd)
{
// TODO: Add your specialized code here and/or call the base class
BOOL bSuccess = CWnd::Create(NULL, NULL, WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),
pParentWnd,NULL,NULL);
db.Open("JHWY");
SetTimer(1,1000,NULL);
return bSuccess;
}
void CDataSaveWnd::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CTime Tm = CTime::GetCurrentTime();
if(Tm.GetMinute()%2 == 0 && Tm.GetSecond() == 0)
{
ReadItemVal();
SaveItemVal();
}
CWnd::OnTimer(nIDEvent);
}
void CDataSaveWnd::SaveItemVal()
{
CString sPath,szFileName;
CTime t = CTime::GetCurrentTime();
sPath.Format("d:\\历史数据文件夹\\%.4d年%.2d月%.2d日",
t.GetYear(),t.GetMonth(),t.GetDay());
szFileName.Format(sPath+"\\Device.qigao");
//read file data
CFile file;
float *pfValue=new float[this->nTolCount+1];
for(int i = 0; i<this->nTolCount+1; i++)
{
if(i == 0)
pfValue[i] = float(t.GetHour()*30+t.GetMinute()/2);
else
pfValue[i] = fVal[i-1];
}
::CreateDirectory(sPath,NULL);
file.Open(szFileName,CFile::modeCreate|CFile::modeReadWrite|CFile::modeNoTruncate);
file.SeekToEnd();
file.Write(pfValue,sizeof(float)*(this->nTolCount+1));
file.Close();
if(pfValue)
delete pfValue;
}
void CDataSaveWnd::ReadItemVal()
{
CRecordset res(&db);
CString sql;
CDBVariant var;
var.Clear();
CString szId;
int nCount = 0;
sql.Format("Select * From Realanaquantity");
res.Open(CRecordset::forwardOnly,sql,CRecordset::readOnly);
while(!res.IsEOF())
{
CString szName;
res.GetFieldValue("name",var);
szName = *var.m_pstring;
if(szName != "undefine")
{
res.GetFieldValue("RealValue",var);
fVal[nCount] = (float)atof(*var.m_pstring);
nCount++;
}
res.MoveNext();
}
res.Close();
///
sql.Format("Select * From Realelecquantity");
res.Open(CRecordset::forwardOnly,sql,CRecordset::readOnly);
while(!res.IsEOF())
{
CString szName;
res.GetFieldValue("name",var);
szName = *var.m_pstring;
if(szName != "undefine")
{
res.GetFieldValue("RealValue",var);
fVal[nCount] = (float)atof(*var.m_pstring);
nCount++;
}
res.MoveNext();
}
res.Close();
nTolCount = nCount;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -