当我试图找到这个问题的答案时,我在整理这些噪音时遇到了麻烦。当然,有很多库可以用来处理配置文件,但我正在寻找的是,对于这种特定的拆分配置,是否有可用的解决方案。
在Linux系统上,我发现,通过指示用户将默认配置的子集放入一个单独的文件夹(通常带有.d后缀),将默认配置从用户修改中分离出来的情况并不少见。这些更改覆盖了默认配置中的内容,并提供了一种非常简单的方法来在以后跟踪已修改的内容。
发布于 2021-01-18 22:58:37
在不同的配置文件中使用了各种各样的不兼容语法,我不知道有什么库可以解析它们。但是,如果您愿意将自己限制为只使用一种配置语法,那么您问题的两个答案就会浮现在脑海中。
第一种方法是使用脚本语言作为配置文件语法。让我们假设一个应用程序同时读取default.cfg和override.cfg (按照这个顺序)。如果default.cfg包含name="john",那么override.cfg可能包含name="mary",其效果是覆盖name的值。这是因为shell解释器提供了一个公共位置来存储脚本文件中分配的全局变量。下面的伪代码显示了您的应用程序如何与脚本语言解释器交互:
interp = new Interpreter();
interp.executeFile("default.cfg");
interp.executeFile("override.cfg");
name = interp.getValueOfVariable("name");第二种是使用Config4*,这是我编写的一个配置文件解析器;它可以在C++和Java中使用。我建议你阅读中的第2章(配置4*语法概述)。Config4*的“自适应配置”能力似乎符合您所问的问题。如果在阅读第2章后,您同意,那么请阅读第3章,其中提供了C++和Java API的概述。这可能足以让您开始使用它。
https://stackoverflow.com/questions/65763552
复制相似问题