微型机与应用
MICROCOMPUTER & ITS APPLICATIONS
2000　Vol.19　No.6　P.51-53




基于MS Help Workshop的资料
信息查询系统的实现
耿书文　刘胜富
摘要：运用MS Help Workshop技术与计算机高级语言相结合研制开发信息资料查询系统的方法，阐述了资料库的建立和目录式查询、关键词查询、资料全文搜索查询等查询功能的技术实现以及与高级语言的联接。
关键词：MS Help Workshop技术　资料查询系统　检索技术
　　在人们的日常工作中，经常要处理、查阅大量的文字、图表资料，如行政部门的法律法规和行政公文处理、情报资料部门的情报资料管理等等。这些资料的特点是内容广泛、形式各异、格式纷乱复杂，很难找出统一的规律。这就给资料库的建立、资料查询系统的计算机实现带来很大的困难。
　　Microsoft公司提供的Help Workshop是1个开放式的软件帮助制作工具。该工具应用非常灵活方便，具有丰富的帮助制作功能。软件帮助系统本身就是一个较简单的资料信息查询系统。笔者经过开发实践认为，计算机高级语言与MS Help Workshop合理的结合进行信息资料查询系统开发，系统结构简单、操作灵活，且可大大减少编程工作量，不失为开发中小型文字、图表信息资料查询系统的一种有效方法。
1  MS Help Workshop技术简介
　　MS Help Workshop是1个用于创建系统帮助文件的工具。通过编辑建立项目(project)文件、目录(contents)文件，将包含帮助文本内容的RTF文件、位图文件和其它源文件联系在一起，经编译生成可由Windows函数调用执行的帮助文件(*.HLP)。其中关键技术是RTF文件的编辑、RTF文件之间及目录文件与RTF文件所包含的主题之间如何建立关联等。经MS Help Workshop创建生成的帮助文件具有目录查询、索引查询、全文搜索等功能。
1.1 RTF文本编辑
　　由于帮助文件需要在文字内容中加入一些如脚注、下划线、删除线或隐藏文字等特殊格式，甚至还必须能够加入图片，因此一般的文本文件格式(*.TXT)就无法胜任。而RTF文件具有设置不同段落格式的属性。因此，编辑帮助文件文字内容必须保存为*.RTF文件格式。MS Word是编辑RTF文件的最佳工具。RTF文件的编辑工作，按顺序可以分为如下过程：
　　输入所有文字→分页→设置格式→保存文件
1.2 建立关联
　　RTF文件之间及目录文件与RTF文件所包含的主题(Topic)之间的关联是通过以脚注的形式加入RTF文件的关联标记实现的。关联标记有主题ID号、主题关键词和标题文字等几种形式。目录文件与RTF文件之间以及跳跃文字、定义文字功能通过主题ID号实现关联；“索引”功能可通过主题关键词、标题文字建立起索引菜单与主题文字内容之间的链接，并且主题ID号、主题关键词、标题文字之间也是相互关联的。
2  信息资料查询功能的实现
　　信息资料查询系统的开发包括二方面的工作：一是信息资料库的建立，二是查询方式的设计实施。信息资料库的建立就是将录入计算机的信息资料进行合理分类，并以一定的格式存放，供系统查询访问。查询方式的设计实施就是运用适当的查询技术，设计科学的查询方式，以使用户能够方便、灵活、快速、准确地进行查询。查询方式的设计应着重考虑系统的简洁性、可靠性、灵活性和查询速度。信息资料查询的功能包括目录式查询、主题关键词查询、资料全文搜索查询等几方面。如何科学合理地实现这几方面的查询功能是需要深入探讨的问题。
2.1 信息资料库的建立
　　运用MS Help Workshop开发信息资料查询系统首先应对信息资料进行分类，合理划分主题(MS Help Workshop技术以主题为基本查询单元)；然后将分类和划分主题后的信息资料编辑为RTF文件，可以每1个主题写成1个RTF文件，也可以几个主题写成1个RTF文件。为了查询功能的实现，在编辑RTF文件时，最关键的是其中特殊格式的设置。不同特殊格式及其作用、功能如表1所示。RTF文件建立完成后，将所有主题的RTF文件名和ID号写入目录文件和项目文件，最后编译形成*.HLP文件，可脱离原RTF文件运行，具有很好的安全性。
表1  特殊格式的作用及功能
特殊格式作用功能说明
＃脚注加入主题ID号设置资料主题与目录(Contents)文件、
跳跃文字或定义文字的关联
＄脚注加入主题关键词设置资料主题的关键词，显示在索引
搜索框中，并建立索引与主题间的关联
K脚注加入主题的标题设置资料主题的标题名称
隐藏文字标记链接的主题
ID号指定跳跃文字或定义文字链接的资料
主题的ID号
双下划线或删除线跳跃文字设置转到下一页面显示指定资料主题
下划线定义文字设置以弹出窗口形式显示指定资料主题
特殊格式

2.2 目录式查询功能的实现
　　目录式查询功能是从形式上模拟人们实际翻阅书籍的情形。经适当的分类后，将信息资料编制目录，目录就类似1本综合性的书籍，由篇、章到节，再到小节，为逐级细化的层次结构，详细列出了信息资料的类别、标题名称、构成章目等。运用MS Help Workshop技术建立目录文件，可逐级编排信息资料的主类别、次类别、章节、……等，目录最多可达9级，并且各级目录可任意进行编辑、移动。目录文件中的最后1级目录应是信息资料主题，这里需要指定主题的标题名称、主题ID号、主题所在的HELP文件的名称和显示窗体的类型。MS Help Workshop通过主题ID号和HELP文件名称实现最底层目录与指定资料主题的关联。
　　将目录文件写入项目文件，经编译完成后，在目录窗体可显示信息资料目录的内容。目录可任意打开、关闭，操作非常灵活方便、直观。用户可根据查询需求，对目录逐级打开，层层选择，直至所查找信息资料的主题。系统通过主题ID号和HELP文件名称访问相应的信息资料库，并将指定主题的内容显示于指定类型的窗体中，从而实现对信息资料的目录式查询。
2.3 关键词查询
　　关键词查询就是对每一信息资料主题提取关键词，根据用户输入或选择的关键词进行信息资料查询。运用MS Help Workshop技术可对每一信息资料主题设置1个或多个关键词(关键词长度最长可达255个字符)。具体方法为，在RTF文件中以“K”脚注文字的方式给出，若有多个关键词，每个关键词之间用半角“；”分隔。同时，在RTF文件中以“＄”脚注文字的方式给出资料主题的标题名称。需要说明的是，“＃”、“K”、“＄”脚注均要置于资料主题的开头。脚注设置完成后，经MS Help Workshop编译，则所有给定的关键词就会列于关键词索引中，并且资料主题关键词、标题名称和主题内容之间建立起了可靠的关联。
　　MS Help Workshop根据给定的每一信息资料主题的关键词，建立主题关键词索引，并显示于“索引”窗体中，索引中的每一个关键词都指向1个或几个信息资料主题。通过“索引”窗体，用户可直接输入关键词，也可以从给出的索引中选取，系统根据用户的输入或选择，依赖资料主题关键词、标题名称和主题内容之间可靠的关联，访问信息资料库，找出所有关键词所标明的资料主题，给出符合要求的资料主题标题名称列表，供用户进一步选择，进而输出选择主题的内容。如果系统开发者提取的主题关键词完善合理，关键词查询功能就可以很好地实现。
2.4 资料全文搜索查询
　　资料全文搜索查询功能是指系统根据输入的查询内容对资料库中的相关主题进行全文搜索，从而找出所有含有与查询内容相匹配部分的资料主题。MS Help Workshop实现资料全文搜索查询功能非常容易。在建立项目文件时选择“Windows button”菜单，给定窗体类型为“main”，在按钮(Buttons)设置区选中按钮“Find”，并确认在＼Windows＼System＼目录中有动态链接库文件ftsrch.dll。这样，项目文件编译后，就可以实现对包含在该项目文件中的所有信息资料RTF文件的全文搜索。
2.5 相关查询
　　相关查询是指对信息资料的某些部分的进一步解释和相关主题的查询。相关查询功能可采用MS Help Workshop的跳跃文字和定义文字技术实现。具体方式为，在编辑信息资料RTF文件时，将配有相关内容的部分增加双下划线或删除线设置为跳跃文字，或增加下划线设置为定义文字，并在其后标明相关资料内容的主题ID号(设置为隐藏文字)，由此，跳跃文字或定义文字与相关资料主题之间使建立了关联。
　　经MS Help Workshop编译后，相关查询设置完成。用户查询操作时，只需点击其中的跳跃文字(带有实下划线)，系统转到下一页面显示相关资料主题内容；或点击其中的定义文字(带有虚下划线)，系统以弹出窗口形式显示相关资料主题内容。
3  与高级语言的联接
　　如前所述，信息资料的核心查询功能完全可以运用MS Help Workshop技术实现，而系统其它内容，如系统界面、外部菜单项、各种格式输出以及其它的附加功能均可由高级语言(如VB、VC等)编写。二者之间的联接也很简单，可以用Windows提供的API函数WinHelp来实现，即用WinHelp函数调用通过MS Help Workshop制作生成的信息资料*.HLP文件。以Visual Basic 6.0为例，WinHelp函数定义语法为：
　　Declare Function WinHelp Lib ″user32″ Alias ″Win－
　　　HelpA″(ByVal hwnd As Long，ByVallpHelpFile 
　　　As String，ByVal wCommand As Long，ByVal
　　　dwData As Long)As Long
　　函数中各参数的含义：
　　.hwnd――打开*.HLP文件窗口的句柄；
　　.lpHelpFile――打开的*.HLP文件的名称；
　　.wCommand――打开命令(取值可参阅有关书籍)；
　　.dwData――*.HLP文件打开操作的附加数据。
　　调用的语法为：
　　Private Sub mnuHelp＿Click()
　　　RetVal＝WinHelp(Forml.hwnd，″c:＼vbbb＼query＼
　　　　query.hlp″， HELP＿INDEX，cLng(0))
　　End Sub
　　笔者应用MS Help Workshop技术与Visual Basic 6.0相结合成功开发了“矿产资源管理法规查询系统”，该系统广泛、全面收录有关矿产资源管理的国家和地方法律、法规和政策规定、重要领导的讲话稿、矿产资源管理典型案例以及其它有参考价值的资料，经过对这些资料进行分类和主题提取，系统设计有主控界面、分类查询菜单，实现了目录查询功能、索引式查询功能、正文关键词查询功能、法规条文解释查阅功能以及其它打印、复制输出等辅助功能。其中主控界面、分类查询菜单等用Visual Basic 6.0编写，各种信息资料查询功能由MS Help Workshop技术实现。系统设计结构合理，操作简捷灵活，可靠性高，经许多用户使用，反映良好。
耿书文（北京科技大学资源工程学院100083）
刘胜富（北京科技大学资源工程学院100083）
参考文献
1，陈俊源，王一华．活用Visual Basic5．0数据库编程．北京：清 华大学出版社，1998
2，详实翻译组译．Visual Basic 6技术内幕．北京：机械工业出 版社，1999
收稿日期：1999－12－23
