同类型数据编列系统及方法

文档序号:6614424阅读:263来源:国知局
专利名称:同类型数据编列系统及方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据编列的系统及方法。
背景技术
随着计算机操作系统与软件上新功能的开发越趋多元化,文件(Files) 的格式也越来越琳琅满目,从程序开发的角度来看,开发者甚至可以定义出 许多不同文件格式的扩展名(fileextension),然而多数的文件,如系统初始 文件(.ini)、动态连结文件(.dll)、头文件(.h)、文字格式文件(.txt)、位图(.bmp)、 联合图像格式(.jpg)...等文件,虽然扩展名各不相同,但实际上仍然是以几 种文件类型存在的,例如纯文本文件、图片文件,或是其它扩展名不同但 具相同特性的文件。
一般在操作系统中的系统数据文件夹以及程序的安装文件中,会存在着 大量相同类型的数据,例如在Windows系统当中的system32文件数据夹 中,便存在着大量动态连结文件(.dll),而这些动态连结文件的内容通常在几 千个字节的范围,甚至文件中仅具有单一的一道指令或是一小段程序执行 码,但是由于操作系统中存储空间的规划是以磁盘区块(block)为单位,因此 在存放时未满磁盘区块大小的数据仍然会以一整个磁盘区块进行存储,也因 此便会浪费许多额外的存储空间,造成存储空间利用度低的问题。而在安装 操作系统的过程中,要针对这些动态连结文件进行连结时,由于必须读取动 态连结文件中的内容才能执行指令,因此必须针对各个文件不断地重复进行 打开、读取和关闭文件的操作,使得安装过程必须要花费许多时间才能完成。
综上所述,可知现有技术中长期以来存在程序或系统中同类型的数据内 容分散于过多文件中造成存储空间利用度低,以及需要对大量丈件重复进行 打开读取/关闭文件的操作才能搜寻到部分数据内容的问题,因此有必要提 出改进的4支术手段,来解决这个问题。

发明内容
鉴于以上所提出现有技术中长期以来存在程序或系统中同类型的数据 内容分散于过多文件中造成存储空间利用度低,以及需要对大量文件重复进 行打开、读取/关闭文件的操作才能搜寻到部分数据内容的问题,本发明目 的在于提供一种同类型数据编列系统及方法,可以用来解决前述的存储空间 与定位数据内容效率的问题。
本发明尤其涉及一种通过将同类型数据(Homogeneous Data)自动重 新编列(Rearranging)成为单一文件并建立索引机制的同类型数据编列方法。
本发明所提供的同类型数据编列系统,其包含有
加载模块,用于加载欲重新编列的至少一个文件;
磁盘配置模块,用于根据所述这些文件的文件数量及数据内容的文件字 节值大小,分别计算所需的标头(header)数据段、文末(tail)数据段及主体(body) 数据段的字节值大小,并依序配置可存储该标头数据段、该主体数据段及该 文末数据段的总字节值的磁盘空间大小用以生成编列文件;及
编列模块,依序存储每个文件的数据内容至该主体数据段,并依序记录 每个文件的文件名称及数据内容所存储的起始位索引值于该标头数据段。
本发明所提供的同类型数据编列方法,其步骤包含有 载入^^重新编列的文件;
计算这些文件的文件数量,并分别计算所需的标头数据段及文末数据段 的字节值大小;
计算每个文件的数据内容所占的文件字节值大小,求和计算得到主体数 据段的字节值大小;
依序配置可存储标头数据段、主体数据段及文末数据段的总字节值的磁 盘空间大小用于生成编列文件;及依序存储每个文件的数据内容至该主体数据段,并依序记录每个文件的 文件名称及数据内容所存储的起始位索引值于该标头数据段。
通过上述的技术手段,本发明可以实现节省存储空间以及快速定位欲搜 寻的数据的效果。


图l是本发明所述的同类型数据编列系统的结构框图; 图2是本发明所述的同类型数据编列方法的流程图; 图3是本发明纯文本文件编列的实施例示意图。
具体实施例方式
以下将结合附图及实施例来详细说明本发明的具体实施方式
,藉此对本 发明如何通过将同类型数据自动重新编列成为单一文件并建立索? 1机制,来 解决程序或系统中同类型的数据内容分散于过多个文件中,造成文件仅需要 部分存储空间但却占用过多磁盘区块,以及需要对大量文件进行重复打开读 取/关闭操作才能搜寻到部分数据内容的问题,同时就达到节省存储空间及 快速定位欲搜寻的数据内容的实现过程进行了说明,以供充分理解并据以实 施。
首先,先针对本发明中所公开的术语进行定义。在一般操作系统中,同 类型数据有很多种,本发明实施例则以同类型纯文字数据为例,因此在本发 明实施例中,纯文本文件是指文件中仅存储文字数据的文件,诸如系统初 始文件(.ini)、动态连结文件(.dll)、头文件(.h)、文字格式文件(.txt)…等可通 过一般的文字编辑器如记事本(notepad)、 UltraEditor等软件进行编辑的文 件,都属于本发明实施例所说的纯文本文件。
而本发明所述的循环冗余校验(Cyclic Redundancy Check, CRC),则是先 将每一个标头数据段的二进制格式的数据视为一堆连续位所构成的一串数
值,并将此数值除以一个特定的除数,此除数又称为衍生多项式(Generation Polynomial),是根据欲得到的CRC字节值来确定,标头数据段的二进制格
6式数值除以该除数所得的余数,即为校验码,目前较常使用的CRC字节值 有8、 16及32等。
以下,将参照图1所示的本发明所述同类型数据编列系统的方块图,来 说明本发明的系统各才莫块的工作原理。本发明所述的同类型数据编列系统, 其主要包含有加载模块101、磁盘配置模块102、编列模块103。
加载模块IOI,负责加载欲重新编列的文件,其中这些文件可以是纯文 本文件、图片文件或其它类型的文件集合。
磁盘配置模块102,负责根据文件的文件数量以及数据内容的文件字节 值大小配置可容纳编列文件104的磁盘空间大小。编列文件104当中区分为 标头(header)数据段、主体(body)数据段及文末(tail)数据段,其中主体数据段 是用于存放欲编列的这些文件的数据内容,而标头数据段、文末数据段则是 通过对每一个纯文本文件配置一定长的磁盘空间大小所产生的,当编列模块 103将该些文件编列进编列文件104中时,便可根据已配置的磁盘空间依序 填入。
编列模块103,负责依序存储每个文件的数据内容至编列文件104的主 体数据段,编列的同时,将会记录每个文件的文件名称,并存储每一个文件 的数据内容对应的起始位索引值于标头数据段,以便将来定位某一个文件的 数据内容。另外,欲编列的每一个文件在编列时,编列模块103将以跳脱字 符(escape character)区隔各文件的数据内容后,再将数据内容填入到编列文 件104的主体数据^a当中。
除了上述模块外,本系统更可进一步包含一个二进制格式转换模块105, 用以将标头数据段的数据内容转换为二进制格式存储,以避免使用者误修改 到标头数据段当中的定位信息,并以循环冗余校验(Cyclic Redundancy Check CRC)针对每一个标头数据段的定位信息(包含文件名称及起始位索引值)产 生校验码后,将校验码依序存储于该文末数据段中,以便读取文件时判断存 储于标头数据段的定位信息的正确性。
接下来,如图2所示,是本发明所述的同类型数据编列方法的流程图, 将配合说明来解释本发明的实施步骤。首先,先通过加载模块101加载欲编列的一个或多个文件(步骤201), 这些文件可以是位于同一文件目录下的文件,或是使用者选定的文件,这些 文件可以是纯文本文件、或图片文件、或其它类型的文件集合。加载时,可 以将同一文件目录下的文件一并加载,也可以通过使用者选择文件后加载所 选择的文件。加载后,磁盘配置模块102将先根据加载文件的文件数量分别 计算所需的标头数据段及文末数据段的字节值大小(步骤202),接着,计算 每个文件数据内容所占的字节值大小,经过求和计算后,便可得到主体数据 段的字节值大小(步骤203)。
由于标头数据段及文末数据段是每编列一个文件便会产生一个定长的 信息,而主体数据段是由所有欲编列的文件的字节值大小所决定,因此磁盘 配置模块102便可以轻易的依序配置可存储标头数据段、主体数据段及文末 数据段的总字节值的磁盘空间大小以生成编列文件104(步骤204)。
编列时,编列模块103将依序存储每个文件的数据内容至编列文件104 的主体数据段(步骤205),并依序记录每个文件的文件名称,以及存储每一 个文件的数据内容时对应的起始位索引值于编列文件104的标头数据段当 中(步骤206),以便将来在读取时,可轻易的定位到所需要的文件及其文字 内容,其中编列文件的数据内容时,各文件的数据内容,将以一个或多个跳 脱字符区隔。另外,标头数据段当中的定位信息(包含文件名称及起始位索 引值)更可进一步地以二进制格式进行存储,并以循环冗余校验针对每一个 标头数据段当中的二进制数据产生一段校验码,校验码产生后,便直接存放 于编列文件104的文末数据段当中。因此,将来在读取文件时,便可依据文 末数据段的校验码判断标头数据段的定位信息是否为正确值,提高读文件时 定位数据内容的正确性。
接下来,将结合图3及以同类型的纯文本文件作为实施例来说明本发明 的具体实施方法。
假设有一套使用本发明的同类型数据编列方法的系统数据文件夹,若一 开始预i殳加载的纯文本文件的文件类别为系统初始文件(.ini)301 ~ 303(以下 分别以"OOUni"、 "002.ini,,及"003.ini,,称之),则磁盘配置模块102将先根据 文件数量及原本各纯文本文件的文件字节值大小计算出编列文件304所需要配置的磁盘空间大小。假设"001.ini"301的字节值大小为82 Bytes,所占 用的文件磁盘空间为4KB, "002.ini"302的字节值大小为1KB,所占用的文 件磁盘空间为4KB, "003.ini"303的字节值大小为2KB,所占用的文件磁盘 空间为4KB,三个数据的字节值大小之和即为3082Bytes。而由于标头数据 段中的数据都是定长的信息,因此若每一个纯文本文件会产生一个12Bytes 的定位信息,而通过循环冗余校验后每一纯文本文件会产生16Byte的校-睑 码,则总字节值为3082+ 12*3 + 16* 3 = 3166Bytes,因此便需要配置4KB 大小的磁盘空间来存储编列文件304,原先需要4 * 3 = 12 KB的磁盘空间才 能存储名欠编列的系统初始文件301 -303,现在就只需要以4KB的》兹盘空间 即可存储,明显的节省了存储空间,提高了存储空间的利用度。
所生成的编列文件304,内容包含标头数据段305、主体数据段306及 文末数据段307。在本实施例接下来的说明中,将以位索引值308示意本发 明字节值大小的计算及编列方式,这些位索引值308并不需要实际存放于编 列文件304中,而是通过计算标头数据段305中每一个文字数据的长度以及 文件字节值310所得到。
将纯文本文件301 ~ 303编列至编列文件304的处理方法,则是先将纯 文本文件301 ~ 303的文字内容自主体数据無306开始逐一编列,由于有三 个纯文本文件,因此先预留了 3*12=36 Bytes的标头数据段空间,主体数据 段306便是自位索引值308为"36"的位置开始编列,并在标头数据段305中 记录起始位索引值311。
以编列"001.ini,,301为例,由于"001.ini,,301的文字内容为82 Bytes,因 此仅需要82 Bytes的空间填入文字内容,编列时将以跳脱字符"\0,,区分各纯 文本文件的文字内容并存放于主体数据段306当中。
文字内容编列完成后,便将文字内容对应的起始位索引值"36"编列至标 头数据段305中对应的起始位索引值311。
编列的过程中,存放于标头数据段305的数据格式更可进一步以二进制 格式进行编列,以避免使用者打开文件时误修改了将来需要用来定位的信 息,同时,二进制格式的数据,也将以循环冗余校验产生的校验码放置于文 末数据段307,以便将来校验标头数据段305的定位信息是否为正确值。当系统数据夹中的系统初始文件需要进行连结或是搜寻其中 一个数据
时,只要将编列文件304开启,并依据已编列的文字数据进行读取,便可将 所需的部分文字数据读取出来,而不需要重复打开读取/关闭文件的动作, 可省去相当多的处理动作。当使用者需要针对某一个纯文本文件进行读取 时,也可通过标头数据段305当中的信息快速定位到所需要读取的文件。
一般在安装程序中,也会具有相当多同类型的文件,因此也可以本发明 的处理方法来提升安装时的速度,避免在加载安装文件时需要针对过多的文 件重复执行打开读取/关闭文件的动作。
本发明中的实施例是以加载三个扩展名为".ini"的纯文本文件为例,然 而实际可载入的文件数量及文件类型并不以此为限。
综上所述,可知本发明与现有技术之间的差异在于,本发明具有将同类 型数据自动重新编列成为单一文件并建立索引机制的技术手段,藉此可以解 决现有技术所存在的同类型的资料内容分散于过多文件中造成存储空间利 用度低,以及需要对大量文件重复进行打开读取或关闭文件的操作才能搜寻 到部分数据内容的问题,进而达到了可节省存储空间及快速定位欲搜寻的数 据内容的功效。
虽然本发明所披露的实施方式如上,但所述的内容并非用以直接限定本 发明的专利保护范围。任何本发明所属技术领域中的本领域技术人员,在不 脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作 些许的变动。本发明的专利保护范围,仍须以各项权利要求所界定的范围为准。
权利要求
1、一种同类型数据编列系统,其特征在于,所述系统用于重新编列至少一个文件,所述系统包含一个加载模块,用于加载欲重新编列的所述文件;一个磁盘配置模块,用于根据所述文件的文件数量及数据内容的一个文件字节值大小,分别计算所需的一个标头数据段、一个文末数据段及一个主体数据段的字节值大小,并依序配置可存储该标头数据段、该主体数据段及该文末数据段的总字节值的磁盘空间大小用于生成一个编列文件;以及一个编列模块,依序存储每个文件的数据内容至所述主体数据段,并依序记录每个文件的一个文件名称及数据内容所存储的一个起始位索引值于所述标头数据段。
2、 如权利要求1所述的同类型数据编列系统,其特征在于,所述文件 为纯文本文件或图片文件。
3、 如权利要求1所述的同类型数据编列系统,其特征在于,所述系统 进一步包含一个二进制格式转换模块,用于将所述标头数据段的数据内容转 换为二进制格式存储。
4、 如权利要求3所述的同类型数据编列系统,其特征在于,所述二进 制格式转换模块,进一步地用以将所述标头数据段二进制格式的数据内容以 循环冗余校验产生校验码后,将所述校验码存储于所述文末数据段中。
5、 如权利要求1所述的同类型数据编列系统,其特征在于,每个文件 的数据内容是以一个跳脱字符作为区隔。
6、 一种同类型数据编列方法,其特征在于,该方法用于重新编列至少 一个文件,该方法包含下列步骤 .载入^:重新编列的所述文件;计算所述文件的文件数量,并分别计算所需的一个标头数据段及一个文 末数据段的字节值大小;计算每个文件的数据内容所占的一个文件字节值大小,求和计算得到一 主体数据段的字节值大小;依序配置可存储该标头数据段、该主体数据段及该文末数据段的总字节值的磁盘空间大小用以生成一个编列文件;及依序存储每个文件的数据内容至该主体数据段,并依序记录每个文件的 一个文件名称及数据内容所存储的起始位索引值于该标头数据段。
7、 如权利要求6所述的同类型数据编列方法,其特征在于,所述文件 是纯文本文件或图片文件。
8、 如权利要求6所述的同类型数据编列方法,其特征在于,存储于该 标头数据段中的数据内容进一 步还包含转换为二进制格式后进行存储的步骤。
9、 如权利要求8所述的同类型数据编列方法,其特征在于,所述标头 数据段中二进制格式的数据内容进一步还通过循环冗余校验产生校验码,并 将所述校验码存储于所述文末数据段。
10、 如权利要求6所述的同类型数据编列方法,其特征在于,每个文件 的数据内容是以一个跳脱字符作为区隔。
全文摘要
本发明公开了一种同类型数据编列系统及方法,目的在于解决程序或操作系统中同类型的数据内容分散于过多文件中造成存储空间利用度低,以及需要对大量文件重复进行打开读取/关闭操作才能搜寻到部分数据内容的问题,所述系统及方法通过将同类型数据自动重新编列成为单一文件并建立索引机制,而达到可节省存储空间及快速定位欲搜寻的数据内容的功效。
文档编号G06F17/30GK101436190SQ20071018788
公开日2009年5月20日 申请日期2007年11月14日 优先权日2007年11月14日
发明者赵九英, 邱全成 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1