小型文本编辑系统.doc

小型文本编辑系统.doc

ID:52768981

大小:96.00 KB

页数:2页

时间:2020-03-30

小型文本编辑系统.doc_第1页
小型文本编辑系统.doc_第2页
资源描述:

《小型文本编辑系统.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、小型文本编辑系统问题描述在开发程序过程中,编辑程序是必不可少的软件工具。一般说来,文本编辑程序具有如下基本功能。1.编辑操作:包括建立和修改文本。修改文本有行处理和串处理两种方式。行处理指的是整行插入、删除或改变被修改行所在的位置。串处理指的是在一行中查找某一子串,然后将该子串删除或用新的子串替换。2.读、写文本:通常被编辑的文本作为一个文件存放在外存中,为了进行编辑,要把已有的文件从外存读到指定的工作空间(即内存)。3.解释命令:一般来说,编辑程序都以“交互”方式执行,用户通过编辑程序的内部命令控制程序执行所规定的操作。所以,编辑程序要能解释执行内部命令。实现要点1.主要数据结构文本

2、编辑系统涉及到数据在内外存的存放方式。在外存中,可以采用正文文件来存放。在内存中,由于要经常地进行编辑操作。而这些操作使得数据信息处在动态之中。因此,内存的数据结构应该能够适应这种不断的变化。这里可以采用环行链表结构,表中每个结点表示的字符个数相同,比如取4个字符。对每一行的环行链表分别设置一个表头结点,该结点包含两个指针域:一个指针指向表中左端的第一个结点,另一个指针指向相邻下一行环行表的一表头结点。所有行的表头结点通过指向下一行的指针构成一个环行链表。如下图所示。图1用链表表示文本指针head指向第一行的表头结点,inptr指向当前处理行的表头结点。变量dot表示当前处理行的序号,

3、dot表示文本的行数。在初始状态下,即当文本为空的时候,指针head,inptr均为空,变量dot,dol的值均为0。1.编辑操作的实现要点(1)插入行在读输入字符的过程中建立一个环行链表。当输入一行结束时,将最后一个结点中多余的字节填入空字符’’。然后,将这一行链入表头中指针inptr所指的行之后,并使inptr指向新行的表头,变量dot,dol的值均增1。当输入行中只有一个句点‘。’的时候,插入行的过程结束。(2)删除行删除行时先按被删除的行号,将指针inptr移至该行。然后,从行表头结点的环行表中删除该行,并释放其中的全部结点。删完好,inptr指向下一行,dot的值不变,d

4、ol的值减1。如果被删除行是文本作后一行,则inptr移至到第一行,并置dot的值为0,说明文本已空,置head和inptr均为空,dot的值为0。(3)移动行在移动行之前,按指定目标位置之前的行号找到该行,设其指针为P2。再按行号找到被移动行,设其指针为P1。将P1所指的行从行表头环行边表中删除,插在P2所指行之后。调整inptr和dot的值,使其指向被移动行的结果位置。(4)连接行连接操作只对相邻的两行进行。连接时,将inptr所指行中的换行字符’’改成空字符’’,并将本行的环行链表和下一行的环行链表连成一个环行链表。(5)串替换在指定行内查找已知串s1所在位置,并用新串s

5、2替换s1的内容。在查找s1所在位置时,首先找s1中第一个字符所在的位置。设其结点指针为pf,在该结点中的位置为first。然后比较s1后面的字符,一旦发现s1不匹配的字符,则终止这一比较过程,并用s1的首字符再与(pf,first)之后的字符比较2.内部命令的设置程序的每个内部命令都由一个字符组成。命令之后有一个分隔符,可以是空格、换行、等号或其他字符,分隔符之后可以带有本命令的参数。l等号使程序输出当前行的行号。l句点后边带有整型参数。该命令将行指针设置为参数所指定的行。l¥输出文本的行数,即最大行号。lA或I输入文本行,插入过程以单独一个句点作为一行的结束。lD或k删除当前行。l

6、L或p输出当前行开始的23行文本。不足23行时,输出当前行之后的全部行,并标注行号。lM该命令接受用逗号分隔的两个参数,将第一个参数指定的行移至到第二个参数指定的行之前。比如,“m1,m3“将第一行移至到第三行之前,第二行之后,然后,行指针指向第三行。lS该命令接受用斜线分隔的两个子串,若子串中含有斜线时,用反斜线转义。比如,当串分别为”x/y”和“x/z”的时候,要用”/x/y”和”/x/z”的形式来表示。该命令用第二个子串替换第一个子串的内容。lR读所编辑的文件作为文本的内容,插在当前行之后,并输出读入的字符数。lW清除所编辑文件中原来的内容,将新文本写入文件,并输出文本的字符

7、数。lQ结束编辑,程序退出执行。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。