📄 unitarydlg.cpp
字号:
// UnitaryDlg.cpp : implementation file
//
#include "stdafx.h"
#include "bpnlayerexe.h"
#include "UnitaryDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// UnitaryDlg dialog
UnitaryDlg::UnitaryDlg(CWnd* pParent /*=NULL*/)
: CDialog(UnitaryDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(UnitaryDlg)
m_iSelect = 0;
//}}AFX_DATA_INIT
}
void UnitaryDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(UnitaryDlg)
DDX_Radio(pDX, IDC_RADIO1, m_iSelect);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(UnitaryDlg, CDialog)
//{{AFX_MSG_MAP(UnitaryDlg)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// UnitaryDlg message handlers
void UnitaryDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CDaoDatabase DbOpen;
CDaoRecordset RsOpen(&DbOpen);
CDaoTableDef TdOpen(&DbOpen);
CFileDialog FileDlg(TRUE);
FileDlg.m_ofn.lpstrTitle="打开要待归一化的数据库文件";
FileDlg.m_ofn.lpstrFilter="Access database(*.mdb)\0*.mdb\0Text file(*.txt)\0*.txt\0All files(*.*)\0*.*\0\0";
if (IDOK==FileDlg.DoModal())
{
DbOpen.Open(FileDlg.GetPathName());
}
else
return;
TdOpen.Open("data");
RsOpen.Open(&TdOpen);
int iRecortCount=RsOpen.GetRecordCount();
int iFieldCount=RsOpen.GetFieldCount();
CDaoFieldInfo FieldInfo;
RsOpen.GetFieldInfo(0,FieldInfo);
AfxMessageBox(FieldInfo.m_strName);
//////////////////////////////////////////////////////////////////////////
CDaoDatabase DbSave;
CDaoRecordset RsSave(&DbSave);
CDaoTableDef TdSave(&DbSave);
CFileDialog FileDlg2(FALSE);
FileDlg2.m_ofn.lpstrTitle="保存数据库";
FileDlg2.m_ofn.lpstrFilter="Access database(*.mdb)\0*.mdb\0Text file(*.txt)\0*.txt\0All files(*.*)\0*.*\0\0";
FileDlg2.m_ofn.lpstrDefExt="mdb";
CFileFind FileFind;
if (IDOK==FileDlg2.DoModal())
{
if (!FileFind.FindFile(FileDlg2.GetPathName()))
{
DbSave.Create(FileDlg2.GetPathName());
}
else
{
DeleteFile(FileDlg2.GetPathName());
DbSave.Create(FileDlg2.GetPathName());
}
}
else
{
return;
}
//////////////////////////////////////////////////////////////////////////
CString strTemp="create table data(Input0 double)";
COleVariant ColeTemp;
DbSave.Execute(strTemp);
TdSave.Open("data");
for (int i=1;i<iFieldCount;i++)
{
RsOpen.GetFieldInfo(i,FieldInfo);
TdSave.CreateField(FieldInfo.m_strName,dbDouble,1);
}
RsSave.Open(&TdSave);
double **ppdMinMax;
ppdMinMax=new double*[iFieldCount];
for (int i=0;i<iFieldCount;i++)
{
ppdMinMax[i]=new double[2];
}
for (int i=0;i<iFieldCount;i++)
{
RsOpen.MoveFirst();
**(ppdMinMax+i)=RsOpen.GetFieldValue(i).dblVal;
*(*(ppdMinMax+i)+1)=**(ppdMinMax+i);
for (int j=0;j<iRecortCount;j++)
{
ColeTemp=RsOpen.GetFieldValue(i);
if (ColeTemp.dblVal>**(ppdMinMax+i))
{
**(ppdMinMax+i)=ColeTemp.dblVal;
}
if (ColeTemp.dblVal<*(*(ppdMinMax+i)+1))
{
*(*(ppdMinMax+i)+1)=ColeTemp.dblVal;
}
if ((iRecortCount-1)!=j)
{
RsOpen.MoveNext();
}
}
}
for (int i=0;i<2;i++)
{
RsSave.AddNew();
for (int j=0;j<iFieldCount;j++)
{
RsSave.SetFieldValue(j,*(*(ppdMinMax+j)+i));
}
RsSave.Update();
}
//////////////////////////////////////////////////////////////////////////
RsSave.MoveFirst();
RsOpen.MoveFirst();
UpdateData(TRUE);
for (int i=0;i<iRecortCount;i++)
{
RsSave.AddNew();
for (int j=0;j<iFieldCount;j++)
{
ColeTemp=RsOpen.GetFieldValue(j);
if (0==m_iSelect)
{
RsSave.SetFieldValue(j,(ColeTemp.dblVal-*(*(ppdMinMax+j)+1))/(**(ppdMinMax+j)-*(*(ppdMinMax+j)+1))*0.9+0.05);
}
if (1==m_iSelect)
{
RsSave.SetFieldValue(j,((ColeTemp.dblVal-*(*(ppdMinMax+j)+1))/(**(ppdMinMax+j)-*(*(ppdMinMax+j)+1))*2-1)*0.9);
}
}
RsSave.Update();
if (i!=(iRecortCount-1))
{
RsOpen.MoveNext();
}
}
EndDialog(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -