SegDocDlg.cpp
上传用户:sanxfzhen
上传日期:2014-12-28
资源大小:2324k
文件大小:4k
源码类别:

多国语言处理

开发平台:

Visual C++

  1. // SegDocDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "TextClassify.h"
  5. #include "SegDocDlg.h"
  6. #include "WZDDRDLG.H"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CSegDocDlg dialog
  14. SegDocsParam theSegDocsParam;
  15. CSegDocDlg::CSegDocDlg(CWnd* pParent /*=NULL*/)
  16. : CDialog(CSegDocDlg::IDD, pParent)
  17. {
  18. //{{AFX_DATA_INIT(CSegDocDlg)
  19. m_strTarget = _T("");
  20. m_strSource = _T("");
  21. m_bContainTag = FALSE;
  22. m_bMultiDocs = FALSE;
  23. m_bDelStopwords = FALSE;
  24. //}}AFX_DATA_INIT
  25. }
  26. void CSegDocDlg::DoDataExchange(CDataExchange* pDX)
  27. {
  28. CDialog::DoDataExchange(pDX);
  29. //{{AFX_DATA_MAP(CSegDocDlg)
  30. DDX_Text(pDX, IDC_EDIT_TARGET, m_strTarget);
  31. DDX_Text(pDX, IDC_EDIT_SOURCE, m_strSource);
  32. //DDX_Check(pDX, IDC_CONTAIN_TAG, m_bContainTag);
  33. DDX_Check(pDX, IDC_MULTI_DOCS, m_bMultiDocs);
  34. DDX_Check(pDX, IDC_DEL_STOPWORDS, m_bDelStopwords);
  35. //}}AFX_DATA_MAP
  36. }
  37. BEGIN_MESSAGE_MAP(CSegDocDlg, CDialog)
  38. //{{AFX_MSG_MAP(CSegDocDlg)
  39. ON_BN_CLICKED(IDC_BTN_BROWSE1, OnBtnBrowse1)
  40. ON_BN_CLICKED(IDC_BTN_BROWSE2, OnBtnBrowse2)
  41. //}}AFX_MSG_MAP
  42. END_MESSAGE_MAP()
  43. /////////////////////////////////////////////////////////////////////////////
  44. // CSegDocDlg message handlers
  45. void CSegDocDlg::OnOK() 
  46. {
  47. // TODO: Add extra validation here
  48. UpdateData(TRUE);
  49. if(m_strSource.IsEmpty()||m_strTarget.IsEmpty())
  50. {
  51. AfxMessageBox("目标路径或结果路径不能为空!");
  52. return;
  53. }
  54. if(m_bMultiDocs)
  55. {
  56. if(!SetCurrentDirectory(m_strSource))
  57. {
  58. AfxMessageBox("源文档目录不存在!");
  59. return;
  60. }
  61. if(m_strTarget.Find(m_strSource)>=0)
  62. {
  63. AfxMessageBox(""结果"不能是"目标"的子目录!");
  64. return;
  65. }
  66. if(!SetCurrentDirectory(m_strTarget))
  67. {
  68. if(!CreateDirectory(m_strTarget,NULL))
  69. {
  70. AfxMessageBox("无法创建结果文档目录!");
  71. return;
  72. }
  73. }
  74. }
  75. else
  76. {
  77. FILE *file;
  78. if((file=fopen(m_strSource,"r"))==NULL)
  79. {
  80. AfxMessageBox("文件"+m_strSource+"不存在!");
  81. return;
  82. }
  83. fclose(file);
  84. }
  85. theSegDocsParam.m_strSource=m_strSource;
  86. theSegDocsParam.m_strTarget=m_strTarget;
  87. theSegDocsParam.m_bContainTag=m_bContainTag;
  88. theSegDocsParam.m_bMultiDocs=m_bMultiDocs;
  89. theSegDocsParam.m_bDelStopwords=m_bDelStopwords;
  90. CDialog::OnOK();
  91. }
  92. void CSegDocDlg::OnBtnBrowse1() 
  93. {
  94. // TODO: Add your control notification handler code here
  95. UpdateData(TRUE);
  96. if(m_bMultiDocs)
  97. {
  98. UpdateData(TRUE);
  99. CWzdDirDlg dlg;
  100. CString dir=dlg.GetDirectory(this,m_strSource);
  101. if(!dir.IsEmpty())
  102. {
  103. m_strSource=dir;
  104. UpdateData(FALSE);
  105. }
  106. }
  107. else
  108. {
  109. static char BASED_CODE szFilter[] = "All Files (*.*)|*.*||";
  110. CFileDialog cfd(TRUE,szFilter,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter,NULL);
  111. if (cfd.DoModal()==IDOK) 
  112. {
  113. m_strSource=cfd.GetPathName();
  114. m_strTarget=m_strSource+".seg";
  115. UpdateData(FALSE);
  116. }
  117. }
  118. }
  119. void CSegDocDlg::OnBtnBrowse2() 
  120. {
  121. // TODO: Add your control notification handler code here
  122. if(m_bMultiDocs)
  123. {
  124. UpdateData(TRUE);
  125. CWzdDirDlg dlg;
  126. CString dir=dlg.GetDirectory(this,m_strTarget);
  127. if(!dir.IsEmpty())
  128. {
  129. m_strTarget=dir;
  130. UpdateData(FALSE);
  131. }
  132. }
  133. else
  134. {
  135. static char BASED_CODE szFilter[] = "All Files (*.*)|*.*||";
  136. CFileDialog cfd(FALSE,szFilter,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter,NULL);
  137. if (cfd.DoModal()==IDOK) 
  138. {
  139. m_strTarget=cfd.GetPathName();
  140. UpdateData(FALSE);
  141. }
  142. }
  143. }