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

📄 datasavewnd.cpp

📁 电力监控系统。 使用VC实现
💻 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 + -