《简易行编辑》是一款功能强大且操作简便的文字处理工具,适用于各种文档编写与编辑工作。它具有快速启动、轻量级设计及丰富的排版选项等特点,能够帮助用户高效完成任务并提升工作效率。
文本编辑程序是计算机文字加工的基本软件工具,实现对文本段落件的插入、删除等操作。限制这些操作以行为单位进行的操作称为行编辑程序。被编缉的文本段落件可能很大,并非总是可以全部读入内存中处理。
一种解决方法是对文本逐段地编缉:任何时刻只把待编缉文件的一小部分放在内存,这部分内容被称为活区(active zone)。试按照这种方法实现一个简单的行编辑程序。假设每行不超过320字符, 很少超过80个字符。
### 基本要求
1. 行插入。
- 格式:i<行号><回车><文本>.<回车>
- 插入的文本将在活区中第<行号>行之后。
2. 行删除。
- 格式:d<行号 1>[ <行号 2>]<回车>
- 删除从第<行号 1>到第<行号 2>(包括)的文本。两个格式的例子是:d10<回车> 和 d10 14<回车>。
3. 活区切换
- 格式:n<回车>
- 将活区内存数据写入输出文件,并从输入文件中读取下一段作为新的活区。
4. 显示当前的活动区域内容(p命令)
- 格式:p<回车>
- 逐页显示20行的内容,每页结束后询问用户是否继续查看。每一行前面加上四位数的行号和一个空格符。
### 测试数据
略。
### 实现提示
1. 设定活区大小用activemaxlen(例如设为100)来表示;考虑到文本实际长度通常在60到70字符之间,因此可以以标准块形式分配存储空间。每个标准行块包含81个字符,并且使用特殊的ASCII字符标记行尾。
2. 初始化时,请用户提供输入文件名和输出文件名(两者不可相同),然后尽可能多地从输入文件中读取文本,但不超过activemaxlen-x.x的限制值。
3. 在执行插入命令的过程中, 需要检查活区大小是否已满;如果满了,则需要将第一行或前几行输出到输出文件中以腾出空间。
4. 当所有数据都从输入文件读取完毕后,n(切换)命令意味着结束编辑。否则,在未完全读入的情况下该操作可以保留一部分内容在活区顶部以便于后续处理的连贯性。
5. 前三个命令执行之后自动调用显示当前活动区域内容的功能以确认更改是否正确实施。
### 选作部分
1. 对所有输入进行严格的错误检查,确保用户不会因为格式问题导致程序崩溃或产生不可预料的结果;
2. 添加更复杂的编辑功能如替换指定行中的特定字符串;在活区内执行模式匹配等操作。