Labview字符串与文件I/O

2015-09-18 09:01:22   来源:eefocus   

关键字: Labview  字符串  文件IO

字符串

字符串是ASCII码字符的集合,当用户与GPIB和串行设备的通信,读写文本文件以及传递文本信息时,字符串都是非常有用的。字符串中的字符有些是可显示的,有些则是不可显示的。

LabVIEW在功能模板上的字符串子模板中提供了一整套的字符串处理函数,能够完成各种字符串处理功能。常用的字符串对象包括字符串输入控件和字符串显示控件,它们位于控件→新式→字符串与路径→字符串输入控件,字符串显示控件。如图:

[转载]Labview字符串与文件I/O

字符串的显示方式:

在前面板上放置一个字符串输入控件,右击鼠标,弹出如图所示的菜单:

[转载]Labview字符串与文件I/O

从上图中可以看出字符串有4种显示方式

下图是“www avrvi.com”分别用这4种方式显示,如图:

[转载]Labview字符串与文件I/O

字符串函数

打开程序框图中的字符串函数,如图:

[转载]Labview字符串与文件I/O

字符串函数模板除了包含一般的字符处理函数以外,还包含各种字符常量,以及字符串与数字量,路径的相互转换函数。

其中最后一行包含了各种常量,可以方便的使用。

字符串应用举例:

例一:组合字符串

该例的目的是将一些字符串和数值转化成一个新的输出字符串。

  1. 新建一个VI,在前面板上放置字符串输入控件“命令字”和“单位”,符串显示控件“输出命令字符”,数值输入控件“数值”和数值显示控件“字符串长度”。
  2. 切换到程序框图,在字符串函数模板中选择“格式化写入字符串”,如图连线:
  3. [转载]Labview字符串与文件I/O

  4. 双击“格式化写入字符串”函数,弹出如图所示对话框
  5. [转载]Labview字符串与文件I/O

    对它进行参数设定,将分数的长度改为4,如图:

    [转载]Labview字符串与文件I/O

  6. 同样在程序框图中添加“字符串长度”函数计算字符串的长度,它用于返回输出的命令字符串的长度。
  7. 完成连线,如图:
  8. [转载]Labview字符串与文件I/O

    运行结果如图:

    [转载]Labview字符串与文件I/O

例二:字符串子集和数值的提取

实际应用中很多情况下,必须把字符串转换成数值,例如需要将从仪器中得到的数据字符串转换成数值。

该例的目的是从一个输入的字符串中,提取一个子字符串,另外扫描字符串,将子字符串转换为数据。

  1. 新建一个VI,按照如图所示放置输入和输出控件。
  2. [转载]Labview字符串与文件I/O

  3. 切换到程序框图,从字符串函数模板中,选择“部分字符串”函数,在该例中,它的功能是返回从偏移地址开始的指定长度的子字符串。
  4. 选择“扫描字符串”函数,它用于扫描字符串,并将有效的数值(0~9,正,负,e和E)转换成数值。如果连接了一个格式字符串,它将根据字符串指定的格式进行转换,否则将进行默认格式的转换,该函数的初始扫描位置参数用于设置初始扫描位置,它与“数字相对偏移量”相连。
  5. 完成连线,如图:
  6. [转载]Labview字符串与文件I/O

    运行结果如图:

    [转载]Labview字符串与文件I/O

    注意:LabVIEW的偏移地址是从0开始计数的。

文件I/O

文件输入输出是程序设计中的一个重要概念,一般来说,文件是存储在磁盘伤的数据的集合。文件输入与输出就是要在磁盘文件中保存和读取信息数据,以文件形式存储起来的数据具有“永久性”,数据文件不仅可以与LabVIEW语言编写的其他VI交换数据,而且可以被其他程序共享。

文件输入与输出操作主要包括3个基本的步骤:新建或者打开一个已有的文件,对文件进行读写和关闭文件。

LabVIEW支持的文件格式主要包含以下3种:

  • ASCII码文本格式文件
  • 二进制格式文件
  • LabVIEW数据记录文件
  1. ASCII码文本格式文件
  2. 文本文件又称为ASCII码文件或字符文件,它的每一个字节代表一个字符,存放的是这个字符的ASCII码。文本文件的优点是它几乎在任何应用程序中都是可读的,这种文件最易于进行整体互换,用户可以用其他的软件来访问数据,例如字处理软件Word或者Excel等,在仪器控制系统中的大部分控制指令也是用文本字符串。当然在写文件之前必须要将所有的数据都变成ASCII字符串格式,读文件之后要将字符串恢复为原数据值。

    文本文件的缺点是占用的磁盘空间较大,比如存储一个浮点数-864.39571,因为每个字符要占用一个字节,所以需要10个字节空间。文本文件的存取数据过程中存在ASCII码与机器内码的转换,所以存取数据的速度也比较慢。

  3. 二进制格式文件
  4. 二进制文件是把数据按其在内存中存储的形式(机器内码)原样输出到磁盘上,所以它的存取速度最快,格式也最紧凑。二进制格式占用的磁盘空间比ASCII码文本文件要小得多,对于上诉的浮点数-864.39571,如果存储为单精度型,只占用4个字节,要是存储为双精度型,则占用8个字节。

    用户在读写二进制文件时,必须明确文件使用的时哪一种数据类型,各种类型的二进制文件之间是不能通用的。二进制格式文件可以随机的访问其中的某一数据。而这一点是文本文件无法比拟的,要想在文本文件中访问某一数据,则必须把它之前的数据全部都读出来,才可以访问所需要的数据。

  5. 数据记录文件
  6. 数据记录文件也是一种二进制格式的文件,只有LabVIEW才可以对它进行读取和处理。数据记录文件可以看成是数据库文件格式,它将数据存储为一系列相互独立的有各自数据类型的记录,就像簇一样,每一个记录可以包含不同类型的数据,这些数据类型是由用户事先指定的。LabVIEW允许用户自由读取数据记录文件,在各个记录中索引出不同数据类型的数据,并且每一个记录文件都包含由时间标记。

    LabVIEW在程序框图上的为我们提供了一整套功能强大而且方便灵活的文件输入/输出函数,如图:

    [转载]Labview字符串与文件I/O

    具体每个控件的作用和功能不在这里向大家详细地介绍,下面将通过一系列地例子来说明各种文件的读取。

例一:

使用“写文本文件”函数写文本文件

1.新建一个VI,在前面板上放置一个“波形图表”,将标签内容改为“温度”,取消显示曲线图注和X,Y坐标轴标签,同时放置一个数字输入控件,将标签改为“采样点数”。再放入一个“文件路径输入控件”,它位于控件→新式→字符串与路径→文件路径输入控件,如图:

[转载]Labview字符串与文件I/O

2.后面板程序如图:

[转载]Labview字符串与文件I/O

其中用到了一个LabVIEW自带的程序Digital Thermometer.vi,在程序框图中点击“选择VI…”,如图:

[转载]Labview字符串与文件I/O

系统会自动打开一个对话框,如图:

[转载]Labview字符串与文件I/O

在我的计算机里,它位于labview8.2→Activity→Digital Thermometer,如图:

[转载]Labview字符串与文件I/O

其中在“格式化写入字符串”函数上的“%3.fn”是转换后保留三位小数,字符串间以回车间隔。

[1] [2]
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

推荐阅读

编辑:什么鱼
本文引用地址: http://www.eeworld.com.cn/Test_and_measurement/2015/0918/article_13176.html
[发表评论]
[加入收藏]
[打印本页]
[关闭窗口]
[返回顶部]
[RSS订阅]
小广播
每日新闻
最热点击
本周热门资源推荐
EEWORLD独家
论坛精华
精选博文