1、文本编辑器文本编辑器 文本编辑器是最常用的文档创建和编辑工具。随着计算机科学与技术的发展,用来处 理文本的编辑器随处可见,并且形式多样。比如,Windows 下的记事本,写字板, EditPlus,UltraEdit 等都是十分优秀的文本编辑器和处理工具。在本章中,我们将向读者讲解 如何利用 C 语言来发展开发一个简易的文本编辑器。 1 设计目的设计目的 利用 C 语言的单链表数据结构及相关函数,本章编程实现了一个与 DOS 操作系统下的 Edit 相似的文本编辑器。再次文本编辑器中,用户可以通过快捷和选择菜单项,完成基本的 文本编辑器和文件处理工作。 通过文章的介绍,读者可以了解文本编辑器的
2、开发过程,掌握菜单的开发技巧,加深对 文件操作的理解。更重要的是,希望此程序能抛砖引玉,引领读者掌握编程的方法和技巧, 开发出更优秀的程序。 2 功能描述功能描述 如图.1 所示,文本编辑器主要由五大功能模块构成,它们分别是文件操作模块,文本编 辑模块,剪切操作模块,菜单控制模块和帮助及其他模块。下面分别简要介绍功能模块的功 能。 (1)文件操作模块。在文件操作模块中,主要完成文件的创建,打开,保存和另存操 作。用户可以选择 File 菜单上的 New 子菜单来完成新建文本文件操作;选择 File 菜单上的 Save 子菜单来完成保存文件操作选择 File 菜单上的 Open 子菜单来完成打开
3、文件操作; 选择 Flie 菜单上的 Save as 子菜单来完成文件的另存为操作。在文件的打开,保存和另存为操作 中,系统会提示用户输入文件路径及文件名。值得一提的是,当用户打开一个文件时,指定 的文件必须存在,否则系统会报错。 (2)文本编辑器模块。在文本编辑器模块中,主要完成在编辑窗口中以添加或插入的 方式输入字符,删除光标所在当前位置的单个字符或前一个位置的单个字符,朝上下左右 4 个方向的光标移动操作。 当光标所在位置及后面的位置没有字符时, 系统会以添加的方式输 入字符;当光标所在位置及后面的位置有字符时,系统会已插入的方式输入字符。用户可以 使用 BackSpace 键删除光标前
4、一个字符, 也可以使用Del键删除当前位置的字符或删除 Ctrl+ 左移 (右移) 键 i 选定了的多个字符。 用户可以使用左移键 () , 右移键 () , 上移键 () 和下移键()来移动光标位置。 (3)剪贴板操作模块。在剪贴板操作模块中,主要完成对已选定文本的剪切,复制, 粘贴工作。如果用户要剪切文本以便可以将它移动到其他位置,可通过 Ctrl+X 左移键(右 移键) 先选定文本, 然后选择 Edit 菜单上的 Cut 子菜单或按 Ctrl+X 快捷键来完成剪切任务。 如果用户要复制文本以便可以将它黏贴到其他位置,必须先选定文本,然后选择 Edit 菜单 上的 Copy 紫菜单或按 C
5、trl+C 快捷键来完成复制任务。如果用户要粘贴剪切或复制的文本, 必须将光标置于要粘贴文本的位置,然后选择 Edit 菜单上的 Paste 子菜单或按 Ctrl+V 快捷 键来完成粘贴任务。 (4)菜单控制模块。在菜单控制模块中,主要完成菜单的显示。光带条在子菜单之间 的上下移动或菜单之间的左右移动和子菜单项的选取。本文本编辑器共有 Flie,Edit 和 Help3 个子菜单项,用户可以分别按 F1,F2 和 F3 功能键来完成这 3 个菜单项的调用,即显示某项 菜单。 用户可按光标上移或下移键在某菜单项的子菜单之间循环移动, 也可使用光标的左移 或右移键在 3 个菜单项之间循环移动。当光
6、带移动到某个字菜单项上时,用户此时可使用 Enter 键来选取相关菜单选项。 (5)帮助及其他模块。在帮助及其他模块中,主要完成系统功能及按键的简要介绍。 其他模块包括文本的快速预览和窗口的显示。用户可按 F10 功能键来打开快速预览窗口, 在快速预览窗口中没有功能菜单条。 主窗口要有菜单栏, 文本编辑区和状态栏三大部分构成, 菜单栏用来显示菜单项,文本编辑区主要用来文本字符的输入,删除等操作,状态栏主要用 来显示当前光标在文本窗口中的坐标值。 注意:Turbo C2.默认定义的文本窗口为整个屏幕,共有 80 列(或 40 列) ,25 行的文本单元,每 个单元包括一个字符和一个属性,字符即 ASCII 码字符,属性规定该字符的颜色和强度。同时,他还规定 整个屏幕的左上角坐标为(1,1) ,右下角坐标为(80,25) 。并规定沿水平方向为 X 轴,方向朝右;眼垂 直方向为 Y轴,方向朝下。 3 总体设计总体设计 3.1 功能模块设计功能模块设计 在.2 节中,简单描述了各功能模块的作用,下面分别介绍各功能模块的具体设计。在介 绍各功能模块的具体设计之前,有必