📄 set3database.cpp
字号:
m_ctrlTimeEnd.GetTime(&system1);
system.wHour = system1.wHour;
system.wMinute = system1.wMinute;
system.wSecond = system1.wSecond;
m_Dlg->m_endTime = system;
*pResult = 0;
}
void CSet3Database::OnDatetimechangeDatetimepicker3(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
m_Dlg->m_strDataName = m_DateName;
SYSTEMTIME system,system1;
m_ctrlDayStart.GetTime(&system);
m_ctrlTimeStart.GetTime(&system1);
system.wHour = system1.wHour;
system.wMinute = system1.wMinute;
system.wSecond = system1.wSecond;
COleDateTime startTime,endTime;
m_Dlg->m_startTime = system;
m_ctrlDayEnd.GetTime(&system);
m_ctrlTimeEnd.GetTime(&system1);
system.wHour = system1.wHour;
system.wMinute = system1.wMinute;
system.wSecond = system1.wSecond;
m_Dlg->m_endTime = system;
*pResult = 0;
}
void CSet3Database::OnDatetimechangeDatetimepicker4(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
m_Dlg->m_strDataName = m_DateName;
SYSTEMTIME system,system1;
m_ctrlDayStart.GetTime(&system);
m_ctrlTimeStart.GetTime(&system1);
system.wHour = system1.wHour;
system.wMinute = system1.wMinute;
system.wSecond = system1.wSecond;
COleDateTime startTime,endTime;
m_Dlg->m_startTime = system;
m_ctrlDayEnd.GetTime(&system);
m_ctrlTimeEnd.GetTime(&system1);
system.wHour = system1.wHour;
system.wMinute = system1.wMinute;
system.wSecond = system1.wSecond;
m_Dlg->m_endTime = system;
*pResult = 0;
}
void CSet3Database::OnSelchangeCombo2()
{
// TODO: Add your control notification handler code here
// TODO: Add your control notification handler code here
UpdateData();
m_bShowFinish = true;
/*int iSel = ((CComboBox*)GetDlgItem(IDC_COMBO1))->GetCurSel();
if(iSel == CB_ERR) //没有选择
{
m_bShowFinish = false;
}*/
int iSel = ((CComboBox*)GetDlgItem(IDC_COMBO2))->GetCurSel();
if(iSel == CB_ERR) //没有选择
{
m_bShowFinish = false;
}
else
{
((CComboBox*)GetDlgItem(IDC_COMBO2))->GetLBText(iSel,m_DateName);
}
if(m_strSaveDBName.IsEmpty()) //没有选择
{
m_bShowFinish = false;
}
if ( !m_bShowFinish )
{
m_Dlg->SetWizButton(2);
return ;
}
else
{
UpdateData(FALSE);
m_Dlg->SetWizButton(5);
SetConnect();
}
m_Dlg->m_iType = 1;
CString str = m_strConnect;
str.MakeUpper();
if (str.Find("SQL") >= 0)
{
m_Dlg->m_ConnectSql = str;
((CButton*)GetDlgItem(IDC_BUTTON4))->ShowWindow(FALSE);
m_Dlg->m_databaseType = 0;
}
else if (str.Find("ACCESS") >= 0)
{
((CButton*)GetDlgItem(IDC_BUTTON4))->ShowWindow(TRUE);
m_Dlg->m_ConnectSql = m_strSaveDBName;
m_Dlg->m_databaseType = 1;
}
else
{
m_Dlg->m_ConnectSql = str;
m_Dlg->m_databaseType = 2;
}
m_Dlg->m_strDataName = m_DateName;
}
void CSet3Database::SetConnect(BYTE bCreate)
{
UpdateData(TRUE);
CString strConnect;
CString m_strSaveResult;
{
CString str = m_strSaveDriver;
str.MakeUpper ();
CString strPassword("********************************************************************************");
strPassword = strPassword.Left (m_strSavePassword.GetLength ());
if (str.Find("SQL") >= 0)
{
m_strSaveResult = McgsString( IDS_FORMAT_STR_28 ) + m_strSaveDriver;
m_strSaveResult += McgsString( IDS_FORMAT_STR_29 ) + m_strSaveServer;
m_strSaveResult += McgsString( IDS_FORMAT_STR_30 ) + m_strSaveDBName;
m_strSaveResult += McgsString( IDS_FORMAT_STR_31 ) + m_strSaveUserName;
m_strSaveResult += McgsString( IDS_FORMAT_STR_32 ) + strPassword;
m_strSaveResult += McgsString( IDS_FORMAT_STR_33 );
strConnect = "UID=" + m_strSaveUserName;
strConnect += ";PWD=" + m_strSavePassword;
strConnect += ";DATABASE=" + m_strSaveDBName;
strConnect += ";SERVER=" + m_strSaveServer;
strConnect += ";DRIVER={" + m_strSaveDriver;
strConnect += "};DSN='';";
m_Dlg->m_ConnectSql = strConnect;
}
else if (str.Find("ACCESS") >= 0)
{
m_strSaveResult = McgsString( IDS_FORMAT_STR_28 ) + m_strSaveDriver;
m_strSaveResult += McgsString( IDS_FORMAT_STR_30 ) + m_strSaveDBName;
m_strSaveResult += McgsString( IDS_FORMAT_STR_33 );
strConnect = "DBQ=" + m_strSaveDBName + ";DRIVER={" + m_strSaveDriver + "};DSN='';Uid=Admin; Pwd=";
//如果是ACCESS数据库,不存在的话就创建一个.
HANDLE handle = NULL;
CString strFileName = m_strSaveDBName; //是否带有绝对路径
int iPos1 = strFileName.Find(_T('\\'));
if (iPos1 !=-1)
{
WIN32_FIND_DATA data;
handle = FindFirstFile(strFileName,&data);
if (handle ==INVALID_HANDLE_VALUE)
{
if (bCreate)
{
try
{
CDaoDatabase dbSystem(&((CData_TransApp*)AfxGetApp())->m_WorkSpace);
dbSystem.Create(strFileName,dbLangGeneral);
}
catch(CException* e)
{
e->Delete();
}
}
}
else
{
FindClose(handle);
}
}
m_Dlg->m_ConnectSql = m_strSaveDBName;
}
else if (str.Find("ORACLE") >= 0)
{
m_strSaveResult = McgsString( IDS_FORMAT_STR_28 ) + m_strSaveDriver;
m_strSaveResult += "\r\nConnectString" + m_strSaveDBName;
m_strSaveResult += McgsString( IDS_FORMAT_STR_31 ) + m_strSaveUserName;
m_strSaveResult += McgsString( IDS_FORMAT_STR_32 ) + strPassword;
m_strSaveResult += McgsString( IDS_FORMAT_STR_33 );
strConnect = "UID=" + m_strSaveUserName + ";PWD=" + m_strSavePassword + ";ConnectString=" + m_strSaveDBName +
";DRIVER={" + m_strSaveDriver + "};DSN='';";
}
}
m_strConnect = strConnect ;
SYSTEMTIME system,system1;
m_ctrlDayStart.GetTime(&system);
m_ctrlTimeStart.GetTime(&system1);
system.wHour = system1.wHour;
system.wMinute = system1.wMinute;
system.wSecond = system1.wSecond;
COleDateTime startTime,endTime;
m_Dlg->m_startTime = system;
m_ctrlDayEnd.GetTime(&system);
m_ctrlTimeEnd.GetTime(&system1);
system.wHour = system1.wHour;
system.wMinute = system1.wMinute;
system.wSecond = system1.wSecond;
m_Dlg->m_endTime = system;
}
#include "zlib.h"
void CSet3Database::OnButton1()
{
// TODO: Add your control notification handler code here
// TODO: Add your control notification handler code here
CFileDialogST dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT, _T("All files\0*.*\0"), this);
CString sPathName;
int nRetValue;
nRetValue = dlg.DoModal();
if (nRetValue == IDOK)
{
POSITION Pos;
Pos = dlg.GetStartPosition();
while (Pos != NULL)
{
sPathName = dlg.GetNextPathName(Pos);
} // while
} // if
else
{
return ;
}
m_FileName = sPathName;
CData_TransApp* pApp = (CData_TransApp*)AfxGetApp();
m_FilePath = pApp->McgsGetPath(m_FileName);
m_FilePath += "\\database";
UpdateData(FALSE);
// TODO: Add your control notification handler code here
//默认的名称
//对文件进行操作
CFile file;
try
{
CString strFileName;
int iPos1 = m_FileName.ReverseFind(_T('\\'));
strFileName = m_FileName.Mid( iPos1+1 );
//if (strFileName.CompareNoCase( "BECCA_DATA.ini") != 0)
if (strFileName.CompareNoCase( "Urtedata.usi") != 0)
{
AfxMessageBox("please choose file name is Urtedata.usi");
m_Dlg->SetWizButton(4);
return ;
}
if( !file.Open( m_FileName , CFile::modeRead ) )
{
m_Dlg->SetWizButton(4);
return;
}
//清楚原来的索引信息
for (int i=0;i<m_Dlg->m_arrayInfoFile.GetSize();++i)
{
delete m_Dlg->m_arrayInfoFile[i];
}
m_Dlg->m_arrayInfoFile.RemoveAll();
CByteArray Buff;
Buff.SetSize(file.GetLength());
file.Read(Buff.GetData(),file.GetLength());
COwnerArchive ar(COwnerArchive::storing);
ar.SvrWrite (Buff);
ar.SvrSeekToBegin ();
ar.SvrChangeMode (COwnerArchive::load);
int Size ;
ar >> Size; //对象数目
m_Dlg->m_arrayInfoFile.SetSize(Size);
m_Dlg->m_strArray.SetSize(Size);
if(Size != 1)
{
AfxMessageBox(_T("该版本为临时版本,只能导出只有一个组对象的工程数据!"));
return;
}
for (i=0; i<Size; ++i)
{
CString DataName;
ar >> DataName; // 组对象名
m_Dlg->m_arrayInfoFile[i] = new CVirtualInfoFile(DataName);
int idsize;
ar >> idsize; //对象的成员数
m_Dlg->m_arrayInfoFile[i]->m_GrpObjInfo.SetSize(idsize+2);
{ //添加毫秒和秒
//m_Dlg->m_arrayInfoFile[i]->m_GrpObjInfo[0].m_name = "MCGS_Time";
m_Dlg->m_arrayInfoFile[i]->m_GrpObjInfo[0].m_name = "Becca_Time";
m_Dlg->m_arrayInfoFile[i]->m_GrpObjInfo[0].m_type = 10;
m_Dlg->m_arrayInfoFile[i]->m_GrpObjInfo[1].m_name = "Becca_TimeMS";
m_Dlg->m_arrayInfoFile[i]->m_GrpObjInfo[1].m_type = 1;
}
CString strName;
for (int j=0;j<idsize;++j)
{
int iType;
ar >> iType;// 数据对象类型
ar >> strName;// 数据对象名
m_Dlg->m_arrayInfoFile[i]->m_GrpObjInfo[j+2].m_name = strName;
m_Dlg->m_arrayInfoFile[i]->m_GrpObjInfo[j+2].m_type = iType;
m_Dlg->m_strArray[i].Add(strName);
}
CByteArray BuffTemp;
//处理读到的buff,看看是不是压缩过的
DWORD szdata = ar.SvrGetRealBufferSize() - ar.SvrGetBufferSize();
CByteArray dataBuff;
dataBuff.SetSize(szdata);
ar.SvrRead(dataBuff);
if(dataBuff.GetSize() > 2 * sizeof(long))
{
long lHead = 123456;
memcpy(&lHead,dataBuff.GetData(),sizeof(long));
if(lHead == 0)
{
//这是一份压缩后的数据,需要先做解压缩处理
//取出解压缩后的长度信息
unsigned long iOriginSize = 0;
memcpy(&iOriginSize,dataBuff.GetData() + sizeof(long),sizeof(long));
BuffTemp.SetSize(iOriginSize);
uncompress(BuffTemp.GetData(),&iOriginSize,dataBuff.GetData() + 2 * sizeof(long),
dataBuff.GetSize() - 2 * sizeof(long) );
}
else
{
BuffTemp.SetSize(dataBuff.GetSize());
memcpy(BuffTemp.GetData(),dataBuff.GetData(),dataBuff.GetSize());
}
}
else
{
BuffTemp.SetSize(dataBuff.GetSize());
memcpy(BuffTemp.GetData(),dataBuff.GetData(),dataBuff.GetSize());
}
COwnerArchive arTemp(COwnerArchive::storing);
arTemp.SvrWrite (BuffTemp);
arTemp.SvrSeekToBegin ();
arTemp.SvrChangeMode (COwnerArchive::load);
int FileNum;
arTemp >> m_Dlg->m_arrayInfoFile[i]->m_timeEnd;
arTemp >> m_Dlg->m_arrayInfoFile[i]->m_timeStart;
arTemp >> FileNum;
for (j=0; j<FileNum;++j)
{
CVirtualSaveStruct c;
c.m_strGroupObjName = DataName;
//::AfxMessageBox(DataName);
c.m_strDataSavePath = m_FilePath;
//::AfxMessageBox(m_FilePath);
c.Serialize (arTemp);
//::AfxMessageBox(c.m_strFileName); //文件名:如:23172320050916.000
COleDateTime oleDtstrat,oleDtend;
oleDtstrat.ParseDateTime("2003-12-31 11:11:11");
oleDtend.ParseDateTime("2006-12-31 11:11:11");
COleDateTime strat(c.m_timeStart);
COleDateTime end(c.m_timeEnd);
/*COleDateTime strat(c.m_timeStart);
COleDateTime end(c.m_timeEnd);
CString str,str1;
str=strat.Format("%Y-%m-%d,%H:%M:%S");
str1=end.Format("%Y-%m-%d,%H:%M:%S");*/
//if(c.m_timeStart>=1126520250 && c.m_timeEnd<=1126537066)
if(strat>=oleDtstrat && end<=oleDtend)
{
m_Dlg->m_arrayInfoFile[i]->m_arraySaveInfo.Add(c);
}
}
}
}
catch(CException* e)
{
e->Delete();
file.Close();
return ;
}
m_bTure = true;
m_Dlg->SetWizButton(0);
((CComboBox*)GetDlgItem(IDC_COMBO2))->Clear();
for (int i=0;i<m_Dlg->m_arrayInfoFile.GetSize();++i)
{
((CComboBox*)GetDlgItem(IDC_COMBO2))->AddString(m_Dlg->m_arrayInfoFile[i]->SvrGetFileName());
}
}
void CSet3Database::OnEditchangeCombo3()
{
int i = m_DataType.GetCurSel();
if(i != CB_ERR) //没有选择
{
if (i==0) //表示要转换成文本文件
{
m_Dlg->m_Type = 1;
}
else //表示要转换成数据库
{
m_Dlg->m_Type = 2;
}
m_Dlg->SetWizButton(3);
}
else
{
m_Dlg->m_Type = 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -