书签 分享 收藏 举报 版权申诉 / 12

一种软件对应配置文件的读取方法和装置.pdf

  • 上传人:b***
  • 文档编号:4597150
  • 上传时间:2018-10-21
  • 格式:PDF
  • 页数:12
  • 大小:632.54KB
  • 摘要
    申请专利号:

    CN201410805491.7

    申请日:

    2014.12.19

    公开号:

    CN104572876A

    公开日:

    2015.04.29

    当前法律状态:

    实审

    有效性:

    审中

    法律详情:

    实质审查的生效IPC(主分类):G06F 17/30申请日:20141219|||公开

    IPC分类号:

    G06F17/30

    主分类号:

    G06F17/30

    申请人:

    珠海金山网络游戏科技有限公司; 成都西山居互动娱乐科技有限公司

    发明人:

    梁波; 刘畅; 李翔威; 谭贤亮

    地址:

    519000广东省珠海市吉大景山路莲山巷8号金山软件大厦

    优先权:

    专利代理机构:

    广州嘉权专利商标事务所有限公司44205

    代理人:

    谭志强

    PDF完整版下载: PDF下载
    内容摘要

    本发明公开了一种软件对应配置文件的读取方法和装置,所述方法在软件发布前,将该软件中以文本形式存在的普通配置文件编译成编译配置文件,所述编译配置文件包括一个“节哈希表”和一个或多个“参数哈希表”,所述“节哈希表”由哈希表项组成,每个哈希表项保存普通配置文件中的一个节,对应的,普通配置文件中一个节中的参数生成一个对应的“参数哈希表”,该“参数哈希表”的每个哈希表项保存该普通配置文件中的对应节下所包含的一个参数;之后,若是编译配置文件,则根据需要读取的“节名称”和“参数名称”,分别对应在“节哈希表”和 “参数哈希表”查找对应的节和参数,并在找到参数时,返回该参数值。本发明有效提高配置文件的读取效率。

    权利要求书

    1.  一种软件对应配置文件的读取方法,其特征在于,包括:
    配置文件编译的步骤,在软件发布前,将该软件中以文本形式存在的普通配置文件编译成编译配置文件,所述编译配置文件包括具有对应关系的一个“节哈希表”和一个或多个“参数哈希表”,所述“节哈希表”由哈希表项组成,每个哈希表项保存普通配置文件中的一个节,对应的,每个普通配置文件中的一个节中的参数生成一个对应的“参数哈希表”,该“参数哈希表”由哈希表项组成,每个哈希表项保存该普通配置文件中的对应节下所包含的一个参数;
    配置文件读取的步骤,判断配置文件是普通配置文件或者是编译配置文件,若是普通配置文件,则进行正常读取,否则,根据需要读取的“节名称”和“参数名称”,分别对应在“节哈希表”和 “参数哈希表”查找对应的节和参数,并在找到参数时,返回该参数值。

    2.
      根据权利要求1所述的读取方法,其特征在于,所述普通配置文件和编译配置文件或存储在软件产品的不同目录位置中,或以不同名称命名。

    3.
      根据权利要求1所述的读取方法,其特征在于,所述配置文件编译的步骤具体为:
    (31)读取普通配置文件中的一个节;
    (32)读取此节中的所有参数;
    (33)将此节中的所有“参数名称”通过哈希算法得到所有参数名称的哈希值;
    (34)将“参数名称”的哈希值和对应参数的值作为表项,保存到一个哈希表中,作为该节的“参数哈希表”;
    (35循环以上步骤,直至读取完普通配置文件中所有的节,得到所有节对应的“参数哈希表”;
    (36)将普通配置文件中所有“节名称”通过哈希算法得到所有节名称的哈希值;
    (37)将每个节名称的哈希值、对应节所指向的“参数哈希表”的位置以及对应节所指向的“参数哈希表”的大小作为一个表项存储到另一个哈希表中,得到“节哈希表”;
    (38)将所得到“节哈希表”和对应“参数哈希表”依次写入一个文件,作为编译配置文件。

    4.
      根据权利要求3所述的读取方法,其特征在于,配置文件读取的步骤中,对编译配置文件进行读取的具体步骤为:
    (41)将“节名称”以编译时相同的哈希算法计算哈希值,得到“节名称”的哈希值;
    (42)在“节哈希表”中查找此哈希值对应的表项,若找不到,则进入步骤(47),否则,进入步骤(43);
    (43)从找到的表项中读取对应“参数哈希表”的位置和大小;
    (44)根据“参数哈希表”的位置和大小加载对应的“参数哈希表”;
    (45)将“参数名称”以编译时相同的哈希算法计算哈希值,得到“参数名称”的哈希值;
    (46)在“参数哈希表”中查找此哈希值对应的表项,若找不到,则进入步骤(47),否则,将找到的表项中存储的对应的参数值返回;
    (47)结束读取过程。

    5.
      一种软件对应配置文件的读取装置,其特征在于,包括:
    配置文件编译模块,在软件发布前,将该软件中以文本形式存在的普通配置文件编译成编译配置文件,所述编译配置文件包括具有对应关系的一个“节哈希表”和一个或多个“参数哈希表”,所述“节哈希表”由哈希表项组成,每个哈希表项保存普通配置文件中的一个节,对应的,每个普通配置文件中的一个节中的参数生成一个对应的“参数哈希表”,该“参数哈希表”由哈希表项组成,每个哈希表项保存该普通配置文件中的对应节下所包含的一个参数;
    配置文件读取模块,判断配置文件是普通配置文件或者是编译配置文件,若是普通配置文件,则进行正常读取,否则,根据需要读取的“节名称”和“参数名称”,分别对应在“节哈希表”和 “参数哈希表”查找对应的节和参数,并在找到参数时,返回该参数值。

    6.
      根据权利要求5所述的读取装置,其特征在于,所述配置文件编译模块包括:
    参数哈希表生成单元,用于循环读取普通配置文件中的每一个节中的所有参数,并将每一个节中的所有“参数名称”通过哈希算法得到对应的哈希值,同时,每一个节中“参数名称”的哈希值和对应参数的值作为表项,保存到一个哈希表中,作为该节的“参数哈希表”;
    节哈希表生成单元,用于将普通配置文件中所有“节名称”通过哈希算法得到所有节名称的哈希值,并将每个节名称的哈希值、对应节所指向的“参数哈希表”的位置以及对应节所指向的“参数哈希表”的大小作为一个表项存储到另一个哈希表中,得到“节哈希表”;
    配置文件生成单元,用于将所得到“节哈希表”和对应“参数哈希表”依次写入一个文件,作为编译配置文件。

    7.
      根据权利要求6所述的读取装置,其特征在于,所述配置文件读取模块包括:
    判断单元,用于判断配置文件是普通配置文件或编译配置文件,并在判断是普通配置文件时直接读取;
    节名称查找单元,用于将“节名称”以编译时相同的哈希算法计算哈希值,得到“节名称”的哈希值,并根据该哈希值在“节哈希表”中查找此哈希值对应的表项;
    参数哈希表加载单元,用于从节名称查找单元所找到的表项中读取对应“参数哈希表”的位置和大小,根据“参数哈希表”的位置和大小加载对应的“参数哈希表”;
    参数查找单元,用于将“参数名称”以编译时相同的哈希算法计算哈希值,得到“参数名称”的哈希值,并根据该哈希值在参数哈希表加载单元加载的“参数哈希表”中查找此哈希值对应的表项,同时,将找到的表项中存储的对应的参数值返回。

    说明书

    一种软件对应配置文件的读取方法和装置
    技术领域
     本发明涉及应用软件中配置文件的读取,特别是一种软件对应配置文件的读取方法和装置。
    背景技术
    软件中经常会对配置文件进行读取。一个普通的配置文件常常包含多个节,每个节中又有多个参数,每个参数中包含了用户所需要的最终数据。由于配置文件以文本方式存储,因此存在如下不足:
    1.配置文件接受“节名称”和“参数名称”来读取。由于是文本文件,因此需要对此文本文件做全文的字符串匹配,用于查找“节名称”和“参数名称”,导致查找很多无关的信息,严重浪费时间;例
    2.在产品发布后,诸多重要信息是写入在配置文件中的。这部分信息不希望被用户知道,也不希望被用户修改。而传统的配置文件以明文形式存储,用户只要用文本编辑器打开后即可轻松的修改其中的内容,容易导致以后读取失败,对软件配置产生不良影响。
    发明内容
    为解决上述问题,本发明的目的在于提供一种软件对应配置文件的读取方法和装置,加快配置文件的读取速度,实现部分配置信息的隐藏。
    本发明解决其问题所采用的技术方案是:
    一种软件对应配置文件的读取方法,包括:
    配置文件编译的步骤,在软件发布前,将该软件中以文本形式存在的普通配置文件编译成编译配置文件,所述编译配置文件包括具有对应关系的一个“节哈希表”和一个或多个“参数哈希表”,所述“节哈希表”由哈希表项组成,每个哈希表项保存普通配置文件中的一个节,对应的,每个普通配置文件中的一个节中的参数生成一个对应的“参数哈希表”,该“参数哈希表”由哈希表项组成,每个哈希表项保存该普通配置文件中的对应节下所包含的一个参数;
    配置文件读取的步骤,判断配置文件是普通配置文件或者是编译配置文件,若是普通配置文件,则进行正常读取,否则,根据需要读取的“节名称”和“参数名称”,分别对应在“节哈希表”和 “参数哈希表”查找对应的节和参数,并在找到参数时,返回该参数值。
    优选的,所述普通配置文件和编译配置文件或存储在软件产品的不同目录位置中,或以不同名称命名。
    优选的,所述配置文件编译的步骤具体为:
    (31)读取普通配置文件中的一个节;
    (32)读取此节中的所有参数;
    (33)将此节中的所有“参数名称”通过哈希算法得到所有参数名称的哈希值;
    (34)将“参数名称”的哈希值和对应参数的值作为表项,保存到一个哈希表中,作为该节的“参数哈希表”;
    (35循环以上步骤,直至读取完普通配置文件中所有的节,得到所有节对应的“参数哈希表”;
    (36)将普通配置文件中所有“节名称”通过哈希算法得到所有节名称的哈希值;
    (37)将每个节名称的哈希值、对应节所指向的“参数哈希表”的位置以及对应节所指向的“参数哈希表”的大小作为一个表项存储到另一个哈希表中,得到“节哈希表”;
    (38)将所得到“节哈希表”和对应“参数哈希表”依次写入一个文件,作为编译配置文件。
    优选的,配置文件读取的步骤中,对编译配置文件进行读取的具体步骤为:
    (41)将“节名称”以编译时相同的哈希算法计算哈希值,得到“节名称”的哈希值;
    (42)在“节哈希表”中查找此哈希值对应的表项,若找不到,则进入步骤(47),否则,进入步骤(43);
    (43)从找到的表项中读取对应“参数哈希表”的位置和大小;
    (44)根据“参数哈希表”的位置和大小加载对应的“参数哈希表”;
    (45)将“参数名称”以编译时相同的哈希算法计算哈希值,得到“参数名称”的哈希值;
    (46)在“参数哈希表”中查找此哈希值对应的表项,若找不到,则进入步骤(47),否则,将找到的表项中存储的对应的参数值返回;
    (47)结束读取过程。
    一种软件对应配置文件的读取装置,包括:
    配置文件编译模块,在软件发布前,将该软件中以文本形式存在的普通配置文件编译成编译配置文件,所述编译配置文件包括具有对应关系的一个“节哈希表”和一个或多个“参数哈希表”,所述“节哈希表”由哈希表项组成,每个哈希表项保存普通配置文件中的一个节,对应的,每个普通配置文件中的一个节中的参数生成一个对应的“参数哈希表”,该“参数哈希表”由哈希表项组成,每个哈希表项保存该普通配置文件中的对应节下所包含的一个参数;
    配置文件读取模块,判断配置文件是普通配置文件或者是编译配置文件,若是普通配置文件,则进行正常读取,否则,根据需要读取的“节名称”和“参数名称”,分别对应在“节哈希表”和 “参数哈希表”查找对应的节和参数,并在找到参数时,返回该参数值。
    优选的,所述配置文件编译模块包括:
    参数哈希表生成单元,用于循环读取普通配置文件中的每一个节中的所有参数,并将每一个节中的所有“参数名称”通过哈希算法得到对应的哈希值,同时,每一个节中“参数名称”的哈希值和对应参数的值作为表项,保存到一个哈希表中,作为该节的“参数哈希表”;
    节哈希表生成单元,用于将普通配置文件中所有“节名称”通过哈希算法得到所有节名称的哈希值,并将每个节名称的哈希值、对应节所指向的“参数哈希表”的位置以及对应节所指向的“参数哈希表”的大小作为一个表项存储到另一个哈希表中,得到“节哈希表”;
    配置文件生成单元,用于将所得到“节哈希表”和对应“参数哈希表”依次写入一个文件,作为编译配置文件。
    优选的,所述配置文件读取模块包括:
    节名称查找单元,用于将“节名称”以编译时相同的哈希算法计算哈希值,得到“节名称”的哈希值,并根据该哈希值在“节哈希表”中查找此哈希值对应的表项;
    参数哈希表加载单元,用于从节名称查找单元所找到的表项中读取对应“参数哈希表”的位置和大小,根据“参数哈希表”的位置和大小加载对应的“参数哈希表”;
    参数查找单元,用于将“参数名称”以编译时相同的哈希算法计算哈希值,得到“参数名称”的哈希值,并根据该哈希值在参数哈希表加载单元加载的“参数哈希表”中查找此哈希值对应的表项,同时,将找到的表项中存储的对应的参数值返回。
    本发明的有益效果是:
    本发明采用一种软件对应配置文件的读取方法和装置,对普通配置文件进行了编译,在读取配置文件时,可极大地提高读取速度;同时,采用编译后的编译配置文件,实现部分配置信息的隐藏,加大用户对配置文件进行修改的难度。
    附图说明
    下面结合附图和实例对本发明作进一步说明。
    图1是本发明所述方法中将普通配置文件编译为编译配置文件的流程示意图;
    图2是本发明读取配置文件是的流程图;
    图3是本发明所述方法读取编译配置文件的流程示意图;
    图4是本发明所述编译配置文件的结构示意图。
    具体实施方式
    软件中的配置文件通常以文本形式存储,配置文件接受“节名称”和“参数名称”来读取。由于是文本文件,因此需要对此文本文件做全文的字符串匹配,用于查找“节名称”和“参数名称”。例如对于下面这个配置文件:
    [Main]
    StandardCanvasWidth=1280
    StandardCanvasHeight=960
    [MovieRecord]
    Enable=0
    Size=2
    [Debug]
    3DEngineDebugInfo=0
    Console=0。
    如果想读取[Debug]这个节中的Console参数值,则需要将以上文本全部读取出来,并通过字串比较的方法在读取的文件找到相应的字串,才能找到Console的实际值是0。(若没有读取完[Main]和[MovieRecord]两个节,下面的所有字串是无法找到[Debug]的,因为文本文件中不读取完前面的字串是不知道[Debug]中的Size的位置的,而前面读取的信息,却对我们最终要查询的信息没有帮助只是浪费I/O。)
    为避免以上查找时间的浪费和用户对配置文件的修改,参照图1和图2所示,本发明提供了一种软件对应配置文件的读取方法,包括:
    配置文件编译的步骤,在软件发布前,将该软件中以文本形式存在的普通配置文件编译成编译配置文件,所述编译配置文件包括具有对应关系的一个“节哈希表”和一个或多个“参数哈希表”,所述“节哈希表”由哈希表项组成,每个哈希表项保存普通配置文件中的一个节,对应的,每个普通配置文件中的一个节中的参数生成一个对应的“参数哈希表”,该“参数哈希表”由哈希表项组成,每个哈希表项保存该普通配置文件中的对应节下所包含的一个参数;
    配置文件读取的步骤,判断配置文件是普通配置文件或者是编译配置文件,若是普通配置文件,则进行正常读取,否则,根据需要读取的“节名称”和“参数名称”,分别对应在“节哈希表”和 “参数哈希表”查找对应的节和参数,并在找到参数时,返回该参数值。
    参照图1所示将普通配置文件编译为编译配置文件的流程示意图,所述配置文件编译的步骤具体为:
    (31)读取普通配置文件中的一个节;
    (32)读取此节中的所有参数;
    (33)将此节中的所有“参数名称”通过哈希算法得到所有参数名称的哈希值;
    (34)将“参数名称”的哈希值和对应参数的值作为表项,保存到一个哈希表中,作为该节的“参数哈希表”;
    (35循环以上步骤,直至读取完普通配置文件中所有的节,得到所有节对应的“参数哈希表”;
    (36)将普通配置文件中所有“节名称”通过哈希算法得到所有节名称的哈希值;
    (37)将每个节名称的哈希值、对应节所指向的“参数哈希表”的位置以及对应节所指向的“参数哈希表”的大小作为一个表项存储到另一个哈希表中,得到“节哈希表”;
    (38)将所得到“节哈希表”和对应“参数哈希表”依次写入一个文件,作为编译配置文件。
    参照图2所示,在对配置文件进行读取时,判断配置文件是普通配置文件或者是编译配置文件,若是普通配置文件,则进行正常读取,否则,根据需要读取的“节名称”和“参数名称”,分别对应在“节哈希表”和 “参数哈希表”查找对应的节和参数,并在找到参数时,返回该参数值。
    参照图3所示,配置文件读取的步骤中,对编译配置文件进行读取的具体步骤为:
    (41)将“节名称”以编译时相同的哈希算法计算哈希值,得到“节名称”的哈希值;
    (42)在“节哈希表”中查找此哈希值对应的表项,若找不到,则进入步骤(47),否则,进入步骤(43);
    (43)从找到的表项中读取对应“参数哈希表”的位置和大小;
    (44)根据“参数哈希表”的位置和大小加载对应的“参数哈希表”;
    (45)将“参数名称”以编译时相同的哈希算法计算哈希值,得到“参数名称”的哈希值;
    (46)在“参数哈希表”中查找此哈希值对应的表项,若找不到,则进入步骤(47),否则,将找到的表项中存储的对应的参数值返回;
    (47)结束读取过程。
    本发明对普通配置文件进行了编译,在读取配置文件时,可极大地提高读取速度;同时,采用编译后的编译配置文件,实现部分配置信息的隐藏,加大用户对配置文件进行修改的难度。
    本发明还一种软件对应配置文件的读取装置,包括:
    配置文件编译模块,在软件发布前,将该软件中以文本形式存在的普通配置文件编译成编译配置文件,所述编译配置文件包括具有对应关系的一个“节哈希表”和一个或多个“参数哈希表”,所述“节哈希表”由哈希表项组成,每个哈希表项保存普通配置文件中的一个节,对应的,每个普通配置文件中的一个节中的参数生成一个对应的“参数哈希表”,该“参数哈希表”由哈希表项组成,每个哈希表项保存该普通配置文件中的对应节下所包含的一个参数;
    配置文件读取模块,判断配置文件是普通配置文件或者是编译配置文件,若是普通配置文件,则进行正常读取,否则,根据需要读取的“节名称”和“参数名称”,分别对应在“节哈希表”和 “参数哈希表”查找对应的节和参数,并在找到参数时,返回该参数值。
    为便于读取,配置文件读取模块所读取的“普通配置文件”和“编译配置文件”或存储在软件产品的不同目录位置中,或(在相同的目录下)以不同名称命名。读取模块将优先读取“编译配置文件”,如果读取模块找不到“编译配置文件”则读取模块将读取“普通配置文件”。
    其中,所述配置文件编译模块包括:
    参数哈希表生成单元,用于循环读取普通配置文件中的每一个节中的所有参数,并将每一个节中的所有“参数名称”通过哈希算法得到对应的哈希值,同时,每一个节中“参数名称”的哈希值和对应参数的值作为表项,保存到一个哈希表中,作为该节的“参数哈希表”;
    节哈希表生成单元,用于将普通配置文件中所有“节名称”通过哈希算法得到所有节名称的哈希值,并将每个节名称的哈希值、对应节所指向的“参数哈希表”的位置以及对应节所指向的“参数哈希表”的大小作为一个表项存储到另一个哈希表中,得到“节哈希表”;
    配置文件生成单元,用于将所得到“节哈希表”和对应“参数哈希表”依次写入一个文件,作为编译配置文件。
    其中,所述配置文件读取模块包括:
    判断单元,用于判断配置文件是普通配置文件或编译配置文件,并在判断是普通配置文件时直接读取;
    节名称查找单元,用于将“节名称”以编译时相同的哈希算法计算哈希值,得到“节名称”的哈希值,并根据该哈希值在“节哈希表”中查找此哈希值对应的表项;
    参数哈希表加载单元,用于从节名称查找单元所找到的表项中读取对应“参数哈希表”的位置和大小,根据“参数哈希表”的位置和大小加载对应的“参数哈希表”;
    参数查找单元,用于将“参数名称”以编译时相同的哈希算法计算哈希值,得到“参数名称”的哈希值,并根据该哈希值在参数哈希表加载单元加载的“参数哈希表”中查找此哈希值对应的表项,同时,将找到的表项中存储的对应的参数值返回。
    以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。

    关 键  词:
    一种 软件 对应 配置文件 读取 方法 装置
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种软件对应配置文件的读取方法和装置.pdf
    链接地址:https://www.zhuanlichaxun.net/p-4597150.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1