📄 transtxt.cpp
字号:
// TransTxt1.cpp : implementation file
//
#include "stdafx.h"
#include "bpnlayerexe.h"
#include "TransTxt.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// TransTxt dialog
TransTxt::TransTxt(CWnd* pParent /*=NULL*/)
: CDialog(TransTxt::IDD, pParent)
{
//{{AFX_DATA_INIT(SettingDlg)
m_iInputNum = 0;
m_iDataNum=0;
//}}AFX_DATA_INIT
}
void TransTxt::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(TransTxt)
DDX_Text(pDX, IDC_EDIT2, m_iDataNum);
DDX_Text(pDX, IDC_EDIT3, m_iInputNum);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(TransTxt, CDialog)
//{{AFX_MSG_MAP(TransTxt)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// TransTxt message handlers
void TransTxt::OnButton1()
{
CFileDialog FileDlg(TRUE);
FileDlg.m_ofn.lpstrTitle="打开转换文本数据";
FileDlg.m_ofn.lpstrFilter="Text file(*.txt)\0*.txt\0Access database(*.mdb)\0*.mdb\0All files(*.*)\0*.*\0\0";
FileDlg.DoModal();
CFile *pFile;
pFile=new CFile(FileDlg.GetPathName(),CFile::modeRead);
int iLength;
iLength=pFile->GetLength();
char *buf;
char tempBuf[20]={0};
buf=new char[iLength+1];
buf[iLength]=0;
pFile->Read(buf,iLength);
UpdateData();
int iBigin=0,iEnd=0,iDataNum=-1;
double dTemp;
//////////////////////////////////////////////////////////////////////////
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 str_sql="create table data(Input0 double)";
DbSave.Execute(str_sql);
TdSave.Open("data");
for (int i=1;i<m_iInputNum;i++)
{
str_sql.Format("Input%d",i);
TdSave.CreateField(str_sql,dbDouble,1);
}
for (int i=0;i<(m_iDataNum-m_iInputNum);i++)
{
str_sql.Format("Output%d",i);
TdSave.CreateField(str_sql,dbDouble,1);
}
RsSave.Open(&TdSave);
//////////////////////////////////////////////////////////////////////////
int iLine=0,iRow=0;
CString strTemp;
RsSave.AddNew();
for(int i=0;i<iLength;i++)
{
if ((((buf[i]<'0')||(buf[i]>'9'))&&(buf[i]!=0x2e))
&&(((buf[i+1]>='0')&&(buf[i+1]<='9'))||(buf[i+1]==0x2e)))
{
iBigin=i+1;
}
if ((((buf[i]>='0')&&(buf[i]<='9'))||(buf[i]==0x2e))
&&(((buf[i+1]<'0')||(buf[i+1]>'9'))&&(buf[i+1]!=0x2e)))
{
iEnd=i;
for (int j=iBigin;j<iEnd+1;j++)
{
tempBuf[j-iBigin]=buf[j];
}
tempBuf[iEnd-iBigin+1]=0;
iDataNum+=1;
if (iDataNum/m_iDataNum!=iLine)
{
RsSave.Update();
RsSave.AddNew();
iLine+=1;
}
iRow=iDataNum%m_iDataNum;
if (iRow<m_iInputNum)
{
strTemp.Format("Input%d",iRow);
}
else
{
strTemp.Format("Output%d",iRow-m_iInputNum);
}
dTemp=atof(tempBuf);
RsSave.SetFieldValue(strTemp,dTemp);
//MessageBox(tempBuf);
}
}
RsSave.Update();
EndDialog(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -