📄 bookindlg.cpp
字号:
// BookInDlg.cpp : implementation file
//
#include "stdafx.h"
#include "MyLibrary.h"
#include "BookRS.h"
#include "BookInDlg.h"
#include <fstream>
using namespace std;
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CBookInDlg dialog
CBookInDlg::CBookInDlg(CWnd* pParent /*=NULL*/)
: CDialog(CBookInDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CBookInDlg)
m_author = _T("");
m_category = _T("");
m_amount = 0;
m_name = _T("");
m_bookNum = _T("");
m_press = _T("");
m_price = 0.0f;
m_pressDate = _T("");
//}}AFX_DATA_INIT
}
void CBookInDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CBookInDlg)
DDX_Text(pDX, IDC_AUTHOR, m_author);
DDX_Text(pDX, IDC_CATEGORY, m_category);
DDX_Text(pDX, IDC_AMOUNT, m_amount);
DDX_Text(pDX, IDC_NAME, m_name);
DDX_Text(pDX, IDC_NUM, m_bookNum);
DDX_Text(pDX, IDC_PRESS, m_press);
DDX_Text(pDX, IDC_PRICE, m_price);
DDX_Text(pDX, IDC_PRESSDATE, m_pressDate);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CBookInDlg, CDialog)
//{{AFX_MSG_MAP(CBookInDlg)
ON_BN_CLICKED(IDC_MULT_IN, OnMultIn)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CBookInDlg message handlers
void CBookInDlg::OnOK()
{
UpdateData();
COleVariant vtime(m_pressDate);
vtime.ChangeType(VT_DATE);
COleDateTime time4=vtime;
SYSTEMTIME systime;
VariantTimeToSystemTime(time4, &systime);
CTime tm(systime);
// TODO: Add extra validation here
if(!m_bookSet.IsOpen())
m_bookSet.Open();
m_bookSet.AddNew();
m_bookSet.m_title=m_name;
m_bookSet.m_author=m_author;
m_bookSet.m_category=m_category;
m_bookSet.m_ISBN=m_bookNum;
m_bookSet.m_press=m_press;
m_bookSet.m_press_date=tm;
m_bookSet.m_total_num=m_amount;
m_bookSet.m_present_num=m_amount;
m_bookSet.m_price=m_price;
m_bookSet.Update();
AfxMessageBox("图书成功导入");
CDialog::OnOK();
}
void CBookInDlg::OnMultIn()
{
// TODO: Add your control notification handler code here
CFileDialog Dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"文本文件(*.TXT)|*.TXT||");
if( Dlg.DoModal() == IDOK ) // 装置文本
{
CString pos[50][9];
int col=0,row=0;
CString strFileName=Dlg.GetFileName();
char byBuffer;
CFile MyFile(strFileName, CFile::modeRead);
while(MyFile.Read(&byBuffer,1)==1)
{
if(byBuffer=='\n')
{
row++;
col=0;
}
pos[row][col]+=byBuffer;
if(byBuffer==/*0x20*/'\t')
{
// pos[row][col].Delete(pos[row][col].GetLength()-1, 1);
pos[row][col].Replace(" ", "" );
pos[row][col].Replace("\n", "" );
pos[row][col].Replace("\t", "" );
pos[row][col].Replace("\r", "" );
col++;
}
if(col>8)
break;
}
if(byBuffer!=0X0A)
row++;
MyFile.Close();
for(int i=0;i<row;i++)
{
if(!m_bookSet.IsOpen())
m_bookSet.Open();
m_bookSet.AddNew();
m_bookSet.m_ISBN=pos[i][0]; //ISBN
m_bookSet.m_category=pos[i][1]; //目录
m_bookSet.m_title=pos[i][2]; //标题
m_bookSet.m_press=pos[i][3]; //出版社
int year=atoi(pos[i][4].Left(4)); // CTime型的出版日期
int month=atoi(pos[i][4].Mid(5,2));
int day=atoi(pos[i][4].Right(2));
CTime t(year,month,day,0,0,0);
m_bookSet.m_press_date=t;
m_bookSet.m_author=pos[i][5]; //作者
float price;
price=atof(pos[i][6]);
m_bookSet.m_price=price;
long totalNum;
totalNum=atol(pos[i][7]);
m_bookSet.m_total_num=totalNum;
long presentNum;
presentNum=atol(pos[i][8]);
m_bookSet.m_present_num=presentNum;
m_bookSet.Update();
}
CString tmp;
tmp.Format("已批量导入%d本图书", row);
AfxMessageBox(tmp);
CDialog::OnOK();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -