⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 savesentencedlg.cpp

📁 将网页文件中的词汇提取出来
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// 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 + -