NX二次开发-各种配置文件方案的比较(一)

NX二次开发-各种配置文件方案的比较(一)

作者:薛剑腾   审校:叶齐天

适用版本:NX6以上

NX二次开发-各种配置文件方案的比较(一)

在应用程序的配置文件方面,长期以来我们研发团队内部都是根据各个项目的情况进行制定,也有的时候因为客户方并没有要求,可能是按照开发人员自己的经验、习惯和偏好制定,并没有统一的标准、格式以及代码只对应的接口方便其他人调用。本技巧则对目前存在的一些配置文件方法进行总结和比较。

NX二次开发-各种配置文件方案的比较(一)
配置文件的定义

要想总结和比较各种配置文件的方法,首先我们要知道什么是配置?总的来说配置是独立于程序的一些只读变量。配置独立于程序,同一个程序在不同的配置下可以有不同的行为方式;对于客户程序来说,配置应该是只读的,并在程序初始化阶段进行读取。常见的配置方式为:硬代码、启动参数、环境变量、注册表和配置文件。因为配置通常是程序中一些使用的值,所以配置的表现形式一般为键——值模式。需要将配置与数据进行区分,数据一般是程序进行处理的对象,并不会改变程序原来的行为模式,并且数据来源于用户。典型的配置为:各种路径、服务器的地址、程序模式和功能的切换和开关、预定值等;对于NX二次开发还包括一些系统的公差值、特征创建的默认值等等。

NX二次开发-各种配置文件方案的比较(一)
文本文件

即一般的文本格式,根据某种特定的配置格式标准或者自定的标准写成的配置文件。事实上现阶段我们研发团队内部使用的基本上都属于这一分类。需要注意的是我们不应该通过文件的后缀来区分文本配置文件的标准,因为像我们团队内部常用的配置文件拓展名“.cfg”文件、”.dat”文件并不指定特定的标准格式文本,而仅仅是常常用来表示配置或数据文件的拓展名而已。

NX的dat文件格式

NX二次开发-各种配置文件方案的比较(一)

图1

NX的各种环境变量在UGII目录下的ugii_env_ug.dat文件中定义,用户也可以通过ugii_env.dat文件覆盖并修改原来的设置。从文件的注释中我们可以得知格式规定:以“#”为注释标记,#开头的句子将被忽略;定义变量的格式为:“名称=值”。由于这里设置的其实就是环境变量,所以其表现形式也和环境变量一样。

CSV样式文件

NX二次开发-各种配置文件方案的比较(一)

图2

CSV(逗号分割值)格式是一种存在广泛认可和通用性的数据格式,虽然不存在标准,但是在RFC 4180中有基础性的描述。它最简单的定义就是数个用逗号分割的值组成的行,并由多个同样格式的行组成的表。值虽然可以为空,但是分割符不能省略,因为需要分割符来定位内容属于哪一列。它可以在第一行设置列名,若值中存在分割符或特殊字符可以使用英文双引号将值包含起来。由于CSV的定义如此简单,因此很多程序在定义配置和数据文件时都会自然地符合CSV的格式,区别可能只是使用了不同的分割符或添加了一些表示注释的符号等等。由于CSV具有记录和表的格式,因此它更适用于作为数据格式而不是配置。事实上大部分数据库也支持通过CSV导入导出数据。

ini文件

NX二次开发-各种配置文件方案的比较(一)

图3

ini文件是Initialization File的缩写,即初始化文件,是Windows系统中广泛应用的系统配置文件格式。由于是系统使用的格式,因此有更有公认性,WinAPI中也有相应的函数进行读写,不少软件也借用了这个格式。标准中包括:使用“[Name]”来定义节,可以对不同的配置进行分组;使用行首分号作为行注释;配置使用“键=值”的格式。

其他格式

NX二次开发-各种配置文件方案的比较(一)

图4

如本研发团队内使用的cfg配置文件类,其中定义了作为注释行的标记“//”,定义了用两个行分割的配置内容区域,但其他方面则并没有做限定。开始和结束标识虽然建议为XX_START,XX_END字样,但是其实可以输入任意字符串。内容提供了作为CSV样式的解析方法,但是开发人员也可以自行拟定解析方法。

NX二次开发-各种配置文件方案的比较(一)
总    结

此类文本配置文件的优点是修改方便,只需要稍加说明,用户就可以自行用文本编辑器对配置文件进行修改。但是由于其本质只是按小范围内定义的或者开发人员自己定义的格式写成的文本,会造成标准混乱,需要自行编写文件的读写代码。另外配置文件也难以包含较多的配置或复杂的层级关系,否则会增加用户浏览和修改的难度。

相关软件
40 多年来,Nastran 有限元求解器一直是应力、振动、屈曲、结构故障、热传递、声学和气动弹性力学分析方面的行业标准。航空航天、汽车、电子、重型机械、医疗设备及其他行业的众多制造商和工程供应商均依靠 NX Nastran 软件满足在工程
相关阅读