一个在文档中自动搜索指定关键字的项目,不知道怎么下手,请各位指教

shotgun79 2004-09-21 04:11:49
目前有这样一个项目,在系统的数据库中储存有一些声音、图片文件,每个文件有一个或多个关键字。当我在系统中加入了一篇文档(主要是word和html)后,系统能够自动对文档进行搜索,在出现了数据库中存在的关键字的地方会自动建立一个链接,用户可以通过这个链接调出数据库中相应的声音、图片资料。当有新的资料被加入数据库后,还能对已有的文档中的链接进行更新。要求用VC++实现。
我目前的问题在于:1、系统自动对文档进行搜索。2、在出现了数据库中存在的关键字的地方会自动建立一个链接用于调用数据库中的相应资料。
这两个部分不知道应该用什么办法实现,有做过的大虾指点一下,谢谢!高分后补。
...全文
252 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
shotgun79 2004-09-22
  • 打赏
  • 举报
回复
谢谢二楼,这个算法在实现上确实是比较简单的。
关于1中的关键字,它是由存储在数据库中的声音、图片所对应的关键字来确定的。然后在文档的全文中搜索这些关键字。
我觉得可能和全文搜索有关,目前正在找这方面的资料。
另一点,在文档中搜索到关键字以后,在这些关键字上建立一个链接的问题,我还不是很清楚希望大家指点。谢谢
jiudon 2004-09-21
  • 打赏
  • 举报
回复
看得不是很明白,针对:1、系统自动对文档进行搜索:

我做过一个在文档中搜索关键字得函数,不知道对你有帮助没有(此函数是针对特殊的文件格式写得,对一般得文档当然适用!!)
代码如下:
/****************************************************************************
功能:在一个文件中查找一个字符串(用来判断文件是否已经识别)
返回:存在true(此文件名对应的id)、不存在false
*****************************************************************************/
BOOL FindStrInFile(char *cFindName,CString FilePath,char* FileID)
{
try
{
CFile file;
unsigned long offset=0;
if(!file.Open(FilePath,CFile::modeRead))//打开文件失败
{
return false;
}
if(!(file.GetLength()) | (file.GetLength()<sizeof(cFindName)))
{
return false;
}
else//文件打开!
{
int i=0;
char cCurName[FILE_NAME_LEN];
memset(cCurName,0,FILE_NAME_LEN);
char cTemp[FILE_NAME_LEN+2+FILE_ID_LEN+2+1];
memset(cTemp,0,sizeof(cTemp));

while(offset<file.GetLength())//文件没有结束
{
file.Seek(offset,CFile::begin);
file.Read(cTemp,(FILE_NAME_LEN+2+FILE_ID_LEN+2+1));

memcpy(cCurName,cTemp,FILE_NAME_LEN);

CString strCurName;
strCurName.Format("%s",cCurName);

memcpy(FileID,cTemp+FILE_NAME_LEN+2,FILE_ID_LEN);

if(!strcmp(cCurName,cFindName))
{
file.Close();
return TRUE;
}
else//当前获得的文件名称不是所要找的文件名称
{
//memset(cTemp,0,sizeof(cTemp));
offset+=FILE_NAME_LEN+2+FILE_ID_LEN+2;
}
}
file.Close();
return false;
}
return false;
}
catch(...)
{
AfxMessageBox("查找文件是否识别时错误,位置:函数FindStrInFile()");
return false;
}
}

2,586

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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