首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

LabVIEW编程实例:巧用ini文件,存储软件配置信息

对于软件开发者来说,经常会碰到这样一种情况,用户要求在每次运行软件时,软件的初始配置信息需要和上次退出时的配置信息保持相同,如软件窗口的位置大小信息,参数的设置信息等。要达到这个目的,可以借助于ini文件实现,也就是说,可以将这些配置信息存储到ini文件中,在程序开始运行时,读取该文件里面的内容进行软件的初始化,在程序退出时,将软件当前的配置信息保存到该文件中。

什么是ini文件

ini文件又称配置文件,它是一种以特定方式组织操作系统或软件配置信息的文本文件。它最早出现于Windows操作系统中,用于统管Windows的各项配置,后来,其理念被广泛使用到其它操作系统和各种应用软件中,常用于保存程序的一些配置参数,如网络配置的IP地址、端口号等信息,其典型的文件格式如下图所示:

由上图可以看出,ini文件由段(Section)、键(Key)和键值(Value)三部分组成。每个ini文件由一个或多个段组成,由“[ ]”内部的字符串来区别不同的段,同一个ini文件中的段名必须唯一。每个段由一系列由“=”隔开的一对键和键值组成,键名代表配置选项,值代表该选项的设置,同一个段内键名必须唯一,但不同段之间的键名并无关系。等号左边的字符串为键名,右边的字符串为键值,在LabVIEW中,键值的类型可以是布尔、I32、U32、双精度浮点数、字符串和路径等。

LabVIEW中ini文件操作函数

LabVIEW中提供了一组用于操作配置文件的函数集,位于函数选板“编程”“文件I/O”“配置文件VI”子选板中,如下图所示,可以完成对配置文件的打开及关闭操作、键和段的读写及删除操作等功能。ini文件本质上是文本文件,因此,这些函数的实现过程也可理解为是LabVIEW内部对文本文件操作函数进行二次封装的过程。在LabVIEW中对配置文件的编程方式同普通文本文件类似,也遵循着打开、读写及关闭的三步原则。

编程实例说明

下面通过一个具体例子,说明如何在LabVIEW中通过ini文件保存软件的配置信息。软件比较简单,在ini文件中,保存软件运行时的位置大小信息以及软件中两个简单的参数信息(采样频率和采样点数),界面如下图所示:

在程序框图中,主框架采用包含三帧的顺序结构形式,第一帧读取ini文件信息并在软件中初始化,第二帧实现软件的具体功能,第三帧保存程序退出时的配置信息。下面分别进行说明。

ini文件的读取处理

在程序开始运行时,读取上次程序退出时保存的ini文件内容,实现代码如下:

上面代码中,首先在当前程序目录下使用“Open Config Data.vi”函数打开“config.ini”文件,注意,该函数的参数“在必要时创建文件”设为假,即文件不存在时不要创建文件,若文件不存在,则该函数会返回一个错误,此时不作任何处理,否则读取该配置文件。

配置文件“config.ini”中的内容包含两个字段“窗口位置信息”和“参数信息”,前者包含了左、上、右、下4个键值对,后者包含了采样频率和采样点数2个键值对,如下图所示:

使用“Read Key.vi”分别读取这些键值对信息,使用VI的属性节点设置主窗口的位置大小信息以及采样频率和采样点数的初始值信息。

读取配置信息完成后,使用“Close Config Data.vi”关闭该配置文件。

ini文件的保存处理

在程序退出时,需要将当前程序中的状态信息保存到ini文件中,实现代码如下:

上面代码中,仍然是先打开配置文件,最后关闭配置文件,中间将软件的配置信息保存到“config.ini”文件中。

使用“Write Key.vi”函数在窗口位置信息字段中保存左、上、右、下的键值,在参数信息字段中保存采样频率和采样点数的键值,注意,在保存采样频率和采样点数的键值时,由于其数据类型是双精度类型,设置了保留的小数点位数是2位。

程序主功能处理

该例子主要演示ini文件的读写方法,所以主程序几乎没作任何功能,仅仅是让程序保持在运行状态,同时,当点击前面板的关闭按钮时能够退出程序,在事件结构的“前面板关闭?”事件分支中实现了这个功能,代码如下:

总结

通过上面的例子可看出,在LabVIEW中使用ini文件存储软件的配置信息,相对于其它如C/C++语言实现,代码要简单简洁的多。

欢迎加关注,共同交流。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181101A15FCI00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券