Labview字符串与文件I/O
字符串是ASCII码字符的集合,当用户与GPIB和串行设备的通信,读写文本文件以及传递文本信息时,字符串都是非常有用的。字符串中的字符有些是可显示的,有些则是不可显示的。
LabVIEW在功能模板上的字符串子模板中提供了一整套的字符串处理函数,能够完成各种字符串处理功能。常用的字符串对象包括字符串输入控件和字符串显示控件,它们位于控件→新式→字符串与路径→字符串输入控件,字符串显示控件。如图:
字符串的显示方式:
在前面板上放置一个字符串输入控件,右击鼠标,弹出如图所示的菜单:
从上图中可以看出字符串有4种显示方式
下图是“www avrvi.com”分别用这4种方式显示,如图:
字符串函数
打开程序框图中的字符串函数,如图:
字符串函数模板除了包含一般的字符处理函数以外,还包含各种字符常量,以及字符串与数字量,路径的相互转换函数。
其中最后一行包含了各种常量,可以方便的使用。
字符串应用举例:
例一:组合字符串
该例的目的是将一些字符串和数值转化成一个新的输出字符串。
- 新建一个VI,在前面板上放置字符串输入控件“命令字”和“单位”,符串显示控件“输出命令字符”,数值输入控件“数值”和数值显示控件“字符串长度”。
- 切换到程序框图,在字符串函数模板中选择“格式化写入字符串”,如图连线:
- 双击“格式化写入字符串”函数,弹出如图所示对话框
- 对它进行参数设定,将分数的长度改为4,如图:
- 同样在程序框图中添加“字符串长度”函数计算字符串的长度,它用于返回输出的命令字符串的长度。
- 完成连线,如图:
- 运行结果如图:
例二:字符串子集和数值的提取
实际应用中很多情况下,必须把字符串转换成数值,例如需要将从仪器中得到的数据字符串转换成数值。
该例的目的是从一个输入的字符串中,提取一个子字符串,另外扫描字符串,将子字符串转换为数据。
- 新建一个VI,按照如图所示放置输入和输出控件。
- 切换到程序框图,从字符串函数模板中,选择“部分字符串”函数,在该例中,它的功能是返回从偏移地址开始的指定长度的子字符串。
- 选择“扫描字符串”函数,它用于扫描字符串,并将有效的数值(0~9,正,负,e和E)转换成数值。如果连接了一个格式字符串,它将根据字符串指定的格式进行转换,否则将进行默认格式的转换,该函数的初始扫描位置参数用于设置初始扫描位置,它与“数字相对偏移量”相连。
- 完成连线,如图:
- 运行结果如图:注意:LabVIEW的偏移地址是从0开始计数的。
文件I/O
文件输入输出是程序设计中的一个重要概念,一般来说,文件是存储在磁盘伤的数据的集合。文件输入与输出就是要在磁盘文件中保存和读取信息数据,以文件形式存储起来的数据具有“永久性”,数据文件不仅可以与LabVIEW语言编写的其他VI交换数据,而且可以被其他程序共享。
文件输入与输出操作主要包括3个基本的步骤:新建或者打开一个已有的文件,对文件进行读写和关闭文件。
LabVIEW支持的文件格式主要包含以下3种:
- ASCII码文本格式文件
- 二进制格式文件
- LabVIEW数据记录文件
- ASCII码文本格式文件
文本文件又称为ASCII码文件或字符文件,它的每一个字节代表一个字符,存放的是这个字符的ASCII码。文本文件的优点是它几乎在任何应用程序中都是可读的,这种文件最易于进行整体互换,用户可以用其他的软件来访问数据,例如字处理软件Word或者Excel等,在仪器控制系统中的大部分控制指令也是用文本字符串。当然在写文件之前必须要将所有的数据都变成ASCII字符串格式,读文件之后要将字符串恢复为原数据值。
文本文件的缺点是占用的磁盘空间较大,比如存储一个浮点数-864.39571,因为每个字符要占用一个字节,所以需要10个字节空间。文本文件的存取数据过程中存在ASCII码与机器内码的转换,所以存取数据的速度也比较慢。
- 二进制格式文件
二进制文件是把数据按其在内存中存储的形式(机器内码)原样输出到磁盘上,所以它的存取速度最快,格式也最紧凑。二进制格式占用的磁盘空间比ASCII码文本文件要小得多,对于上诉的浮点数-864.39571,如果存储为单精度型,只占用4个字节,要是存储为双精度型,则占用8个字节。
用户在读写二进制文件时,必须明确文件使用的时哪一种数据类型,各种类型的二进制文件之间是不能通用的。二进制格式文件可以随机的访问其中的某一数据。而这一点是文本文件无法比拟的,要想在文本文件中访问某一数
Labview字符串文件I 相关文章:
- 频宽、取样速率及奈奎斯特定理(09-14)
- 为什么要进行信号调理?(09-30)
- IEEE802.16-2004 WiMAX物理层操作和测量(09-16)
- 为任意波形发生器增加价值(10-27)
- 基于PCI 总线的高速数据采集系统(09-30)
- 泰克全新VM6000视频测试仪助力数字电视等产品测试 (10-06)