发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种电子装置及其配置信息存储与读取方法,用于解决现有技术中配置文件的读取与存储效率低下的问题。
为实现上述目的及其他相关目的,本发明提供一种电子装置,包括:储存模块,储存有用于配置所述电子装置或与其网络连接的外部设备的配置文件,其中,所述配置文件包括索引区和配置区;所述配置区通过结构体形式存储一条或多条配置信息;所述索引区存储有与每条所述配置信息对应的配置名称、及与所述配置名称关联的用于索引对应配置信息所在配置区中位置的偏移量。
可选的,所述配置名称包括:名称、标识、状态、及描述中的一种或多种。
可选的,所述配置信息的类型为整型、字符串、及浮点中的一种或多种。
可选的,所述电子装置和/或外部设备为路由装置。
为实现上述目的及其他相关目的,本发明还提供一种配置信息存储方法,将配置信息存储于如权利要求1所述的电子装置的储存模块的配置文件中。
可选的,所述将配置信息存储于如权利要求1所述的电子装置的储存模块的配置文件中的步骤包括:在所述索引区中搜索是否存在与欲存储的配置信息的名称相对应的配置名称;如果存在,则根据与所述配置名称对应的偏移量,将所述配置信息存储于与所述偏移量相对应的配置区中的位置;如果不存在,则在所述结构体的末端添加所述欲存储的配置信息,根据所述欲存储的配置信息的名称生成对应的配置名称,根据所述欲存储的配置信息在所述配置区中的位置生成与所述欲存储的配置信息相对应的偏移量,将所述与所述欲存储的配置信息相对应的配置名称以及偏移量存储于所述索引区中。
可选的,所述配置信息的类型为整型、字符串、及浮点中的一种或多种。
为实现上述目的及其他相关目的,本发明还提供一种配置信息读取方法,从如权利要求1所述的电子装置的储存模块的配置文件中读取配置信息。
可选的,所述从如权利要求1所述的电子装置的储存模块的配置文件中读取配置信息的步骤包括:在所述索引区中搜索是否存在与欲读取的配置信息的名称相对应的配置名称;如果存在,则根据与所述配置名称对应的偏移量,定位到与其对应的配置信息,读取所述配置信息;如果不存在,则返回读取错误信息。
可选的,所述配置信息的类型为整型、字符串、及浮点中的一种或多种。
如上所述,本发明的一种电子装置及其配置信息存储与读取方法,将配置信息结构化,以结构体的形式将配置信息组织起来,存储时直接将整个结构体存储到配置文件中。这样做的优点是存储时直接存储,读取时可以将整个结构体直接读取出来,无需做数据类型转换,在不增加系统复杂度的情况下,提高配置信息存储和读取的速度,方便快捷且效率较高。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图示中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
请参阅图1,显示为本发明的一种电子装置在一具体实施例中的模块示意图,所述电子装置1包括储存模块11,所述的存储模块可包括高速随机存取存储器,并且还可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。在某些实施例中,存储器还可以包括一个或多个处理器的存储器,例如经由RF电路或外部端口以及通信网络访问的网络附加存储器,其中所述通信网络可以是因特网、一个或多个内部网、局域网(LAN)、广域网(WLAN)、存储局域网(SAN)等或其他适当组合。存储器控制器可控制设备的诸如CPU和接口电路接口电路之类的其他组件对存储器的访问。
所述存储模块11储存有用于配置所述电子装置或与其网络连接的外部设备的配置文件111,例如所述电子装置1可以通过存储于其存储模块11中的配置文件111对自身进行配置,也可以对与其进行网络连接的外部设备进行配置,所述网络可以是因特网、一个或多个内部网、局域网(LAN)、广域网(WLAN)、存储局域网(SAN)等或其他适当组合,所述电子装置1和/或外部设备例如为路由装置。
所述配置文件111包括索引区1111和配置区1112,所述配置区1112通过结构体形式存储一条或多条配置信息;请参阅图2,显示为本发明的配置区和索引区一具体实施例中的原理示意图,其中所述索引区1111存储有与每条所述配置信息对应的配置名称、及与所述配置名称关联的用于索引对应配置信息所在配置区1112中位置的偏移量。所述配置名称例如包括名称、标识、状态、及描述中的一种或多种。所述配置信息的类型例如为整型、字符串、及浮点中的一种或多种。
于一具体实施例中,所述配置信息包括:String name、int id、String status、Bool online、String description、float x和float y。其中name、id、status、online、description、x以及y为配置名称,String、int、Bool、以及float为配置信息的类型,若用传统的方式进行存储,需要对数据做转换,转换为字串:″name″->name;″id″->string(id);″status″->string(status);″online″->string(online);″description″->string(description);″x″->string(x);″y″->string(y)。其中string()是将其它数据转换为string类型的函数。解析时,需要将数据用”;”进行分割,一个个取出,然后根据需要再转换为所需的数据。本实施例中,将配置信息以结构体形式存储于配置区中,得到结构体:
然后将这些配置信息以结构体的形式直接存储到所述配置区1112中,且所述索引区1111存储的配置名称为name、id、status、online、description、x以及y,且与所述配置名称关联的用于索引对应配置信息所在配置区1112中位置的偏移量分别为0、1、2、3、4、5、6。
本发明的一种电子装置,将配置信息结构化,以结构体的形式将配置信息组织起来,存储时直接将整个结构体存储到配置文件中。这样做的优点是存储时直接存储,读取时可以将整个结构体直接读取出来,无需做数据类型转换,在不增加系统复杂度的情况下,提高配置信息存储和读取的速度,方便快捷且效率较高。
请参阅图3,显示为本发明的一种配置信息存储方法在一具体实施例中的流程示意图。
所述将配置信息存储于如图1所示的实施例中的电子装置1的储存模块11的配置文件111中。所述配置信息的类型为整型、字符串、及浮点中的一种或多种。可知在具体实施中,所述配置信息的类型不以此列举的类型为限,所述配置信息存储方法具体包括以下步骤:
S11:在所述索引区中搜索与欲存储的配置信息的名称相对应的配置名称。
S12:判断所述索引区中是否存在与欲存储的配置信息的名称相对应的配置名称。
S13:根据与所述配置名称对应的偏移量,将所述配置信息存储于与所述偏移量相对应的配置区中的位置。
S14:在所述结构体的末端添加所述欲存储的配置信息。
S15:根据所述欲存储的配置信息的名称生成对应的配置名称,根据所述欲存储的配置信息在所述配置区中的位置生成与所述欲存储的配置信息相对应的偏移量。
S16:将所述与所述欲存储的配置信息相对应的配置名称以及偏移量存储于所述索引区中。
例如在一实施例中,所述电子装置1的储存模块11的配置文件111的配置区1112中存储有结构体:
且所述索引区1111存储的配置名称为name、id、status、online、description、x以及y,且与所述配置名称关联的用于索引对应配置信息所在配置区1112中位置的偏移量分别为0、1、2、3、4、5、6。当欲存储的配置信息为float z,其配置名称为z,在所述索引区中搜索与欲存储的配置信息float z的名称z相对应的配置名称,因为所述索引区中不存在与z对应的配置名称,则在所述结构体的末端添加所述欲存储的配置信息float z。得到更新后的结构体
且根据所述欲存储的配置信息float z的名称生成对应的配置名称z,根据所述欲存储的配置信息在所述配置区中的位置生成与所述欲存储的配置信息相对应的偏移量7。将所述与所述欲存储的配置信息相对应的配置名称以及偏移量存储于所述索引区中,所述索引区的内容跟新为:配置名称为name、id、status、online、description、x、y、以及z,且与所述配置名称关联的用于索引对应配置信息所在配置区1112中位置的偏移量分别为0、1、2、3、4、5、6、7。
请参阅图4,显示为本发明的一种配置信息读取方法在一具体实施例中的流程示意图,即从如图1所示的实施例中的电子装置1的储存模块11的配置文件111中读取配置信息。
所述配置信息读取方法的具体步骤包括:
S21:在所述索引区1111中搜索与欲读取的配置信息的名称相对应的配置名称。所述配置信息的类型为整型、字符串、及浮点中的一种或多种。可知在具体实施中,所述配置信息的类型不以此列举的类型为限。
S22:判断所述索引区1111中是否存在与欲读取的配置信息的名称相对应的配置名称。
S23:根据与所述配置名称对应的偏移量,定位到与其对应的配置信息,读取所述配置信息。
S24:返回读取错误信息。
例如在一具体实施例中,所述电子装置1的储存模块11的配置文件111的配置区1112中存储有结构体:
当所述欲读取的配置信息为float x时,根据在所述索引区1111中搜索到的与欲读取的配置信息的名称x相对应的配置名称x,得到与所述配置名称x相对应的偏移量5,读取所述偏移量5所指定的结构体中的信息Float x。
综上所述,本发明的一种电子装置及其配置信息存储与读取方法,将配置信息结构化,以结构体的形式将配置信息组织起来,存储时直接将整个结构体存储到配置文件中。这样做的优点是存储时直接存储,读取时可以将整个结构体直接读取出来,无需做数据类型转换,在不增加系统复杂度的情况下,提高配置信息存储和读取的速度,方便快捷且效率较高。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。