紧急求助:对话框程序一次选中所有文件却只能处理其中的部分文件,为什么?

gxl0813 2009-03-05 01:55:05

建立的一个对话框程序,代码很简单,对一个文件夹中所有的文件进行分词,文件夹中有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();

}


...全文
97 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gxl0813 2009-03-05
  • 打赏
  • 举报
回复
EVC 4.0新建工程就会卡死是怎么回事?帮帮我!!!!!
gxl0813 2009-03-05
  • 打赏
  • 举报
回复
没有出现错误,还是只处理那么多篇,我把剩下的拿出来处理也是那样,真不知道是怎么回事,救救我啊!!!!
arong1234 2009-03-05
  • 打赏
  • 举报
回复
先看看哪些文件没有被处理,看看操作过程有没有什么错误信息输出出来等等
gxl0813 2009-03-05
  • 打赏
  • 举报
回复
我直接给分配256000也不行啊,结果还是一样的,不知道怎么回事,希望大家帮帮我!
arong1234 2009-03-05
  • 打赏
  • 举报
回复
65535分给1000个文档每个也只有65字节,不一定够存储

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧