Advertisement

简单文件编辑。压缩包。

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
文本编辑程序是计算机进行文字处理的基础软件工具,它能够实现对文本文件的插入、删除以及其他修改操作。将限制这些操作仅限于逐行进行的编辑的程序称为行编辑程序。被编辑的文本文件可能具有庞大的规模,将整个文件加载到编辑程序的内存空间(RAM)中既不经济,也可能无法完全实现。因此,一种常见的解决方法是采用逐段进行编辑的方法。在任何时刻,只保留待编辑文件的一小段内容存储在内存中,这一小段区域被称为活区。请按照这种方法来实现一个简单的行编辑程序。假设文件中每行的长度不超过 320 个字符,通常情况下不会超过 80 个字符。 [基本要求]需要实现以下四条基本的编辑命令:(1) 行插入。格式为:`i<行号><回车><文本>.<回车>`,该命令会将`<文本>`插入到活区中第`<行号>`行之后。(2) 行删除。格式为:`d<行号 1>[ <行号 2>]<回车>`,该命令会删除活区中从第`<行号 1>`行到第`<行号 2>`行的内容(包括这两行)。例如,“`d10<回车>`”和“`d10 14<回车>`”都是有效的格式示例。(3) 活区切换。格式为:`n<回车>`,该命令会将当前活区的内容写入输出文件,并从输入文件中读取下一段作为新的活区。(4) 活区显示。格式为:`p<回车>`,该命令会逐页地(每页包含 20 行)显示活区的当前内容。每显示一页内容之后,系统会询问用户是否继续显示后续各页(如果存在),并以每行前置一个固定的四位行号和一个空格符的方式打印输出每一行。各条命令中的“行号”均需确保在活区中的所有行的实际编号范围内有效;只有在执行“行插入”命令时,插入点可以等于活区第一行的实际编号减一(表示在当前屏幕的第一行之前插入),否则该命令参数将被判定为非法。[测试数据] 此处省略。[实现提示] (1) 使用一个变量来描述活区的当前大小,以“activemaxlen”来表示(可配置)。考虑到文本文档的字符长度通常遵循正态分布,其峰值位于 60 到 70 之间,如果使用一个大小为 `320 * activemaxlen` 的字符数组来存储即将要处理的文本块可能会造成巨大的内存浪费。因此建议采用标准行的概念来为每一行的存储分配空间;每个标准行块可以容纳最多 81 个字符。这些标准行块可以组织成一个数组或使用动态链表进行连接的方式管理它们。一行文字可能跨越多个标准行块进行存储。在每一行的末尾可以使用一个特殊的 ASCII 控制字符(例如 `[012]`)来标记其结束位置。此外, 还应记录下活区的起始实际编号。(2)初始化过程包括:首先请用户提供输入文件名(如果输入文件名为空字符串则表示没有输入文件),以及输出文件名;两者不能相同. 然后尽可能多地从输入文件中读取各行为单位的内容, 但读取的数量不能超过 `activemaxlen - x.x` 的值, 其中 `x.x` 是一个可自定义的参数, 例如设置为20。(3)当执行“行插入”命令时, 每接收到一行数据时都需要检查当前的活区大小是否已经达到了预设的最大容量 `activemaxlen` 。如果达到最大容量, 则应该将插入点之前的部分激活区域中的第一行为写入到输出文件中; 如果插入点位于第一行为前, 则只需要将新插入的一行为写入输出文件。(4)如果输入文件尚未被完全读取完毕, 执行“活区切换”命令可以保留原激活区域中最后几行的内容并将其放置在激活区域的顶部, 以保持阅读连续性;否则, 这意味着结束当前的编辑过程或开始对另一个文件进行编辑。(5) 可以设置前三条指令执行完毕后自动调用“活区显示”功能。[选作内容] (1) 对所有无效的命令格式等情况进行严格的错误检查和相应的处理机制。(2) 增加更复杂的编辑操作功能, 例如对某一行进行字符串替换; 在激活区域内执行模式匹配等操作. 命令格式可以为: `S<行号>@<串 1>@<串 2><回车>`, 和 `m<串><回车>` 。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • 迅捷PDF器(
    优质
    迅捷PDF编辑器(压缩文件版)提供便捷高效的PDF文档处理功能,包括编辑、压缩和转换等服务,轻松管理您的电子文档。 迅捷PDF编辑器是一款专业的PDF编辑工具。它集成了多种PDF文本编辑功能,包括添加、修改和绘图标注操作,并且可以对现有内容进行高亮和标注等处理,在办公过程中节省了不少时间。
  • 福昕PDF器(
    优质
    福昕PDF编辑器(压缩文件版)是一款功能强大的文档处理软件,支持PDF文件的创建、编辑和转换,便于用户管理和分享专业文档。 这款PDF编辑器是免费的,体积小巧却功能强大,使用起来非常方便。
  • nltk_data
    优质
    NLTK_DATA压缩包包含了Python自然语言处理库NLTK所需的数据文件和模型资源,便于用户快速安装并使用该库进行文本分析。 在Python的自然语言处理(NLP)领域,NLTK库扮演着至关重要的角色,而nltk_data是其重要组成部分之一。它包含了大量用于训练模型、进行文本预处理以及执行各种NLP任务的数据集和资源。本段落将深入探讨nltk_data包含的各个子模块及其应用,帮助读者更好地理解这一关键工具。 首先来看`chunkers`模块。分词后的进一步处理称为Chunking,它通过组合具有相同词性的连续词语来形成更大的单元,如名词短语或动词短语。nltk_data提供了预训练的chunker,方便对文本进行结构分析,这对于信息提取和语义理解非常有用。 其次,`corpora`是nltk_data的核心部分之一,包含了各种语言的语料库(例如Brown语料库、Gutenberg电子书以及Web文本等)。这些丰富的数据源不仅用于训练和测试NLP模型,还适用于词汇习得、语法分析及情感分析等多种任务。 在`grammars`模块中,一系列预定义的语法规则被提供给开发者使用。通过结合这些规则与NLTK解析器,可以构建复杂的自然语言理解和生成系统。 `help`子目录为初学者提供了关于NLTK库的重要辅助信息、文档和示例教程等资源。 此外,在`models`模块中包含了一系列预训练模型(如词性标注器和命名实体识别器),这些可以直接应用于处理新的文本数据,大大减少了开发者的训练成本。 另外,nltk_data中的`stemmers`集合了多种词干提取算法(例如Porter Stemmer和Lancaster Stemmer)。它们能够将单词还原到其基本形式,便于后续的文本分析与信息检索工作。 在`taggers`模块中,则包括了一系列用于自动为每个单词添加词性标签的工具(如基于条件随机场的Maxent_Tagger),这是许多NLP任务的基础步骤之一。 最后,在处理文本时不可或缺的是通过使用nltk_data中的`tokenizers`来将文本分割成最基本的单元,例如PunktSentenceTokenizer能够智能地识别句子边界,这对于后续文本处理至关重要。 总之,nltk_data是NLTK库的强大后盾。它提供了丰富的数据资源、预训练模型和工具,极大地简化了自然语言处理的复杂性。无论是新手还是经验丰富的开发者都能从中受益,并利用其高效准确地实现诸如情感分析、主题建模及机器翻译等复杂的NLP任务。
  • Tangent.rar
    优质
    Tangent文件压缩包包含了一系列与数学中的切线概念相关的学习资料和工具,适用于学生、教师及研究人员。 在使用OriginLab的Tangent插件时,在Origin 8.0版本中绘制图表的过程中,经常会需要给曲线添加切线。这里提供一种简便的方法来画切线。
  • ChineseInputWebGL_.rar
    优质
    ChineseInputWebGL_文件压缩包包含了用于网页开发的中文输入相关资源和WebGL技术应用示例,适合开发者学习与实践。 1. 解决在使用WebGL后,在火狐、谷歌等浏览器中无法输入中文的问题。 2. 解决全屏模式下不能输入文字的问题。 3. 支持光标移动到文本中间进行插入操作。 4. 支持Ctrl+C(复制)、Ctrl+V(粘贴)和Ctrl+X(剪切)等键盘快捷键的操作。
  • allure-commandline
    优质
    Allure-Commandline是一款用于生成Allure报告的命令行工具,支持测试结果解析和报告定制,适用于持续集成环境。 在使用pytest进行测试时,需要安装allure-commandline工具压缩包。
  • 优质
    这是一款专注于文字处理的简单实用工具,提供基本的文字编辑功能,如字体、颜色及对齐方式等设置,帮助用户轻松完成文档撰写与修改。 一个简易文本编辑器应当具备图形菜单界面,并包含查找、替换(包括相等长度与不等长度的替换)、插入(如字符串或文本块的插入)以及移动功能(例如行块和列块)。此外,该编辑器还应支持删除操作及正确保存和读取文件的功能。同时,它能够准确显示总行数。
  • Java 从中解
    优质
    本教程详细介绍如何使用Java编程语言从ZIP或JAR等压缩包中解压文件的方法与步骤。 简单地从压缩包(Zip)中提取文件,并将提取出的文件名列出。
  • Arduino Wire.h头
    优质
    这段代码压缩包包含了用于Arduino编程中Wire库的相关文件,便于开发者进行I2C通信协议的应用开发。 arduino的wire.h头文件压缩包 这段文字经过处理后只剩下核心内容: arduino的wire.h头文件压缩包