紧急求助:对话框程序一次选中所有文件却只能处理其中的部分文件,为什么?
建立的一个对话框程序,代码很简单,对一个文件夹中所有的文件进行分词,文件夹中有1000篇文档,一次全部选中进行处理,但是用程序处理的时候总是只能处理500多篇,也不提示错误,显示处理完成,不知道是什么问题,请教大家,非常谢谢!
高分送给你!!!!在线等待你的回复!!!!
下面是源码
void CMainFrame::OnSegment()
{
// TODO: Add your command handler code here
// MessageBox("1");
CFileDialog dlg(TRUE, "", "", OFN_ALLOWMULTISELECT," *.txt|*.txt|*.new|*.new|所有文件|*.*|");
CString strFileNames; // 分配一片空间存放文件名,可以选取多个文件
dlg.m_ofn.lpstrFile = strFileNames.GetBuffer(65536);
dlg.m_ofn.nMaxFile =65536;
if(dlg.DoModal()!=IDOK)
{
AfxMessageBox("您没有选取任何文件!");
return;
}
CString FileName;
POSITION pos = dlg.GetStartPosition(); // 获取第一个文件名的起点位置
while(pos!=NULL)
{ // 如果有文件可以获取
FileName = dlg.GetNextPathName(pos); // 获取文件名,并移到下一个文件名的起始位置
Segment(FileName); // 调用处理单个文件的函数
}
AfxMessageBox("已分词完!");
}
void CMainFrame::Segment(CString filename) //下面使用的函数是中科院提供的分词函数接口
{
char PathFileName[256]="";
char pathname[]="F:\\练习编程\\segment_1\\";
if(!ICTCLAS_Init(pathname))
{
printf("Init fails\n");
return ;
}
CString filename1;
int index;
if (-1!=(index=filename.Find(".")))
{
filename1=filename.Left(index);
}
sprintf(PathFileName,"%s_seg.txt",filename1);
ICTCLAS_FileProcess(filename,PathFileName,0);
ICTCLAS_Exit();
}