📄 savesentencedlg.cpp
字号:
// SaveSentenceDlg.cpp : implementation file
//
#include "stdafx.h"
#include "ParseHtml.h"
//#include "ParseHtmlDlg.h"
//#include "BrowseForFolder.h"
#include "XPButton.h"
#include "direct.h"
#include "io.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
CString strOpenFilePath,strOpenFileName;
CString strSaveFilePath,strSaveFileName;
int wjcount=0;
int wenjianshu=0;
//#include "stdafx.h"
#include "SaveSentence.h"
#include "SaveSentenceDlg.h"
#include "MSSQL.h"
//#ifdef _DEBUG
//#define new DEBUG_NEW
//#undef THIS_FILE
//static char THIS_FILE[] = __FILE__;
//#endif
/////////////////////////////////////////////////////////////////////////////
// CSaveSentenceDlg dialog
CSaveSentenceDlg::CSaveSentenceDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSaveSentenceDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CSaveSentenceDlg)
m_input = _T("");
m_strOpenPath = _T("");
m_strSavePath = _T("");
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CSaveSentenceDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSaveSentenceDlg)
DDX_Control(pDX, IDC_PROGRESS, m_MyProgress);
DDX_Text(pDX, IDC_Sentence, m_input);
DDX_Text(pDX, IDC_EDIT1, m_strOpenPath);
DDX_Text(pDX, IDC_Sentence, m_strSavePath);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSaveSentenceDlg, CDialog)
//{{AFX_MSG_MAP(CSaveSentenceDlg)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_SaveSentence, OnSaveSentence)
ON_BN_CLICKED(IDC_SEARCH, OnSearch)
ON_BN_CLICKED(IDC_OPEN, OnOpen)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSaveSentenceDlg message handlers
BOOL CSaveSentenceDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
m_MyProgress.SetRange(0,100);
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CSaveSentenceDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CSaveSentenceDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
//定义一个SaveToDb类
SaveToDb save;
void CSaveSentenceDlg::OnSaveSentence()
{
// TODO: 于磊的原代码
GetDlgItem(IDC_Sentence)->GetWindowText(m_input);
save.Save(m_input);
}
void CSaveSentenceDlg::OnSearch()
{
// TODO: Add your control notification handler code here
_chdir(m_strOpenPath); // 进入要查找的路径(也可为某一具体的目录)
Search_Directory();
m_strOpenPath=m_strOpenPath+"下的文件切分完毕!";
MessageBox(m_strOpenPath);
return;
}
void CSaveSentenceDlg::Search_Directory()
{
long handle;
struct _finddata_t filestruct; //表示文件(或目录)的信息
//char path_search[_MAX_PATH]; //表示当前处理的目录
// "*"表示查找任何的文件或子目录, filestruct为查找结果
handle = _findfirst("*", &filestruct);
// 如果handle为-1, 表示当前目录为空, 则结束查找而返回
if(handle==-1)
return;
// 检查找到的第一个实体是否是一个目录(filestruct.name为其名称)
if( ::GetFileAttributes(filestruct.name) & FILE_ATTRIBUTE_DIRECTORY )
{
// 如果是目录, 则进入该目录并递归调用函数Search_Dirctory进行查找,
// 注意: 如果目录名的首字符为'.'(即为"."或".."), 则不用进行查找
if( filestruct.name[0] != '.' )
{
TCHAR szBuffer[MAX_PATH];
CString strMulu="进入目录 ";
_chdir(filestruct.name);
GetCurrentDirectory(MAX_PATH,szBuffer);
strMulu=strMulu+szBuffer;
GetDlgItem(IDC_Sentence)->SetWindowText(strMulu);
//Update();
//Invalidate(TRUE);
//Beep( 750, 300 );
//UpdateData(TRUE);
//FlashWindow(TRUE);
//MessageBox(strMulu);
Search_Directory();
_chdir("..");
// 查找完毕之后, 返回上一级目录
}
}
else // 如果第一个实体不是目录, 调用切分
{
// 调用切分保存
jxqf(filestruct.name);
CString strWenjian;
wjcount++;
m_MyProgress.SetPos((int)(wjcount*100/wenjianshu));
//strWenjian.Format("第 %d 次调用,切分保存 %s",wjcount,filestruct.name);
//GetDlgItem(IDC_Sentence)->SetWindowText(strWenjian);
//UpdateData(FALSE);
//FlashWindow(TRUE);
//Invalidate(TRUE);
//GetDlgItem(IDC_Sentence)->ShowWindow(SW_SHOW);
//UpdateData(TRUE);
//MessageBox(strWenjian);
}
// 继续对当前目录中的下一个子目录或文件进行与上面同样的查找
while(!(_findnext(handle,&filestruct)))
{
if( ::GetFileAttributes(filestruct.name) & FILE_ATTRIBUTE_DIRECTORY )
{
if(*filestruct.name != '.')
{
TCHAR szBuffer[MAX_PATH];
CString strMulu="进入目录 ";
_chdir(filestruct.name);
GetCurrentDirectory(MAX_PATH,szBuffer);
//strMulu=strMulu+szBuffer;
//GetDlgItem(IDC_Sentence)->SetWindowText(strMulu);
//UpdateData(TRUE);
//FlashWindow(TRUE);
//GetDlgItem(IDC_Sentence)->
//Beep( 750, 300 );
//Invalidate(TRUE);
//GetDlgItem(IDC_Sentence)->ShowWindow(SW_SHOW);
//UpdateData(TRUE);
//MessageBox(strMulu);
Search_Directory();
_chdir("..");
}
}
else
{
// 调用切分保存
jxqf(filestruct.name);
CString strWenjian;
wjcount++;
m_MyProgress.SetPos((int)(wjcount*100/wenjianshu));
//strWenjian.Format("第 %d 次调用,切分保存 %s",wjcount,filestruct.name);
//GetDlgItem(IDC_Sentence)->SetWindowText(strWenjian);
//GetDlgItem(IDC_Sentence)->SetWindowText(strMulu);
//UpdateData(FALSE);
//FlashWindow(TRUE);
//Beep( 750, 300 );
//Invalidate(TRUE);
//GetDlgItem(IDC_Sentence)->ShowWindow(SW_SHOW);
//UpdateData(TRUE);
//MessageBox(strWenjian);
}
}
_findclose(handle); // 最后结束整个查找工作
}
void CSaveSentenceDlg::OnOpen()
{
// TODO: Add your control notification handler code here
char szDir[MAX_PATH];
BROWSEINFO bi;
ITEMIDLIST *pidl;
bi.hwndOwner = this->m_hWnd;
bi.pidlRoot = NULL;
bi.pszDisplayName = szDir;
bi.lpszTitle = "";
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;
bi.lParam = 0;
bi.iImage = 0;
pidl = SHBrowseForFolder(&bi);
//if(pidl == NULL) return _T("");
SHGetPathFromIDList(pidl, szDir);
m_strOpenPath=szDir;
wenjiancount();
UpdateData(FALSE);
}
void CSaveSentenceDlg::jxqf(CString m_strOpenPath)
{
CString strTemp = "";
CString strData = "";
CString strContent = "";
CString strZong = "";
CString strStyle = "";
CString strScript = "";
int m_nLength = 0;
int temp = 0;
CStdioFile inFile;
CMemFile * pmemFile = new CMemFile;
if(!(inFile.Open(m_strOpenPath,CFile::modeRead)))
{
AfxMessageBox("can't open the file");
}
int num = 0,num1 = 0,num2 = 0,num3 = 0,num4 = 0;
while(inFile.ReadString(strData))
{
strData = strTemp+strData;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -