labview2014字符串和文件 IO第5讲
5-字符串和文件IO

LabVIEW将提供一个与此文件相联系的所谓引用句柄。此后, 所有与该文件相关的操作,都可以使用该引用句柄来进行。文 件关闭后,引用句柄即被释放。引用句柄的分配是随机的。
二、文件I/O(3)
• 高层文件I/O和低层文件I/O
一些所谓高层文件I/O函数,可以一次完成上述所有三个 步骤,但效率较低。而另一些所谓低层文件I/O函数,则只负 责完成其中一个步骤。 写入单个操作中的文件,宜使用高层文件I/O函数;如果 写入位于循环中的文件(多为连续写入的情况),为提高效率、 避免重复打开和关闭文件,应使用低层文件I/O函数。
作功能具体包含如下步骤:①把在缓冲区里的文件
数据写入物理存储介质中; ②更新文件列表的信息, 如文件最后修改的日期等; ③释放引用句柄 。 是一 种低层函数。
3. 文件I/O举例1:以电子表格格式存储和读取数据
以嵌套的For循环构建一个二维随机数数组;平铺顺序结构
第0帧中选用的“写入电子表格文件”的作用,是将二维数组转
2. 文件I/O操作函数(6)
I/O
“数据” -> “编程” -> 文件
(5)格式化写入文件
功能:将字符串、数值、路径或布尔数据格式化为文本并写 入一个文件。“格式字符串”用于定义怎样转换“输入1~n”的 输入元素。“输入1~n”为被转换的输入参数,可以是字符串、 路径、枚举、时间标识或任意类型的数值数据,但不能接入数组 或簇。“输出文件引用句柄”输出该VI读取的引用句柄。可以利 用引用句柄进行与输出文件有关的操作。是一种高层函数。
本部分内容主要包括以下三个方面: • 字符串控件 • 字符串的显示方式 • 字符串的操作函数
1. 字符串控件(1)
labview第五章结构

子分支定义输出数据通道。
例子
设定默认的子分支,当
所有条件都不满足时,
执行默认子分支
LabVIEW是一种数据流程序设计语言,没有明确的先后顺序,当节点
所有输入端的数据全部有效时,节点才执行。
顺序结构,它是一种按先后顺序执行的结构,看上去象电影胶片的帧, 每一帧为一段框图程序,按照帧的顺序来执行框图程序。
5. 编辑该事件触发后需执行的相应代码,
并将其和事件源控件一起放入该分支事件 框中。
6. 添加下一个分支的事件源控件、分支及 程序。。。
7.创建一个While循环,将事件结构放入循
环中。
例:用事件结构实现密码登陆:当用户输入密码为123456
时弹出“密码正确登陆成功”对话框,单击“确定”按钮
如果在全局变量声明VI中建立多个控件,可以用操 作工具在全局变量的图标上单击,在列出的所有变 量对象中选择所需的对象。
(3)使用示例
利用全局变量在不同VI中传递数据。
创建一个全局变量声明Ⅵ,其中包含一个数值型控件并命名为 “数值”和布尔型控件并命名为“状态”,保存为“GV.vi”。
新建一个VI命名为“采集信息.vi”,前面板中有一个旋钮开关和按
2.输入端口的设置
条件结构有一个条件输入端口
,根据连到该
端口 的值来判断执行哪一个子分支。
条件输入端口的数据类型有布尔型、整型、字符 串型和枚举型。
3.增减分支及默认分支的设置
应设置一个默认项来处理超出条件选项范围的情 况。 鼠标右键,选择“本分支设置为默认分支”。
4.数据通道的设置
虚拟仪器 第5章 字符串和文件读取

4.查找匹配字符串函数Match Pattern .查找匹配字符串函数
该函数在字符串中从offset端口参数指定偏移处开始搜索指定的表达方式 端口参数指定偏移处开始搜索指定的表达方式 该函数在字符串中从 (regular expression),当发现匹配值后在节点的输出端将字符串 ) 当发现匹配值后在节点的输出端将字符串 个子串输出, 个是匹配字符串之前的子串, (string)分为 个子串输出,第1个是匹配字符串之前的子串,第2个是匹 )分为3个子串输出 个是匹配字符串之前的子串 个是匹 配字符串, 个是匹配字符串之后的子串。 配字符串,第3个是匹配字符串之后的子串。若没有搜索到匹配字符串,匹 个是匹配字符串之后的子串 若没有搜索到匹配字符串, 配字符串输出为空, 端输出为-1。 举例5.6) 配字符串输出为空,在offset past match端输出为 。 (举例 ) 端输出为
创建一个由多个字符串组成的Combo Box。 [例5.2] 创建一个由多个字符串组成的Combo Box。 创建过程: 创建过程:
在前面板上创建一个Combo Box控件,将标签 控件, 在前面板上创建一个 控件 将标签Label命名 命名 学生姓名( 再创建一个String指示 为“学生姓名(Combo Box)”;再创建一个 ) 指示 将标签命名为“学号( 件,将标签命名为“学号(String)”。 ) 上右键弹出快捷菜单, 在Combo Box上右键弹出快捷菜单,选择 上右键弹出快捷菜单 选择Edit Items…, , 打开对话框, 进行设置。 打开对话框,对Combo Box进行设置。 进行设置
[例5.5] 输入一个字符串,分别用四种不同的方式显示。 例 输入一个字符串,分别用四种不同的方式显示。
其框图程序和前面板如图
labview字符串条件结构

labview字符串条件结构LabVIEW字符串条件结构LabVIEW是一款功能强大的图形化编程软件,它在数据采集、数据处理和控制系统方面具有广泛的应用。
LabVIEW提供了丰富的函数库和模块,其中包括字符串条件结构,用于根据不同的字符串输入执行不同的操作。
字符串条件结构是一种基于字符串输入的控制结构,它根据字符串的值来确定程序的执行路径。
在LabVIEW中,字符串条件结构通常用于处理用户界面的输入,根据用户选择的不同操作执行相应的功能。
在LabVIEW中使用字符串条件结构非常简单。
首先,我们需要创建一个字符串输入,可以是用户界面的文本框或者其他字符串来源。
然后,我们可以在字符串条件结构中定义多个条件,每个条件对应一个字符串值。
接下来,我们可以在每个条件下定义相应的操作,例如数据处理、图像显示、文件读写等。
最后,根据输入字符串的值,程序会选择相应的条件并执行对应的操作。
使用LabVIEW的字符串条件结构可以方便地处理各种情况。
例如,我们可以根据用户输入的字符串执行不同的算法,实现自动化的数据处理。
我们也可以根据字符串的值在不同的界面之间进行切换,提供更好的用户体验。
此外,字符串条件结构还可以用于根据不同的字符串值控制设备的状态或执行特定的命令。
在设计字符串条件结构时,我们需要注意以下几点。
首先,要确保所有可能的字符串值都在条件中进行了定义,以免出现未处理的情况。
其次,要注意字符串值之间的顺序,条件的优先级应该根据具体需求进行调整。
此外,还可以使用默认条件来处理未定义的字符串值,以增强程序的容错性。
除了基本的字符串条件结构,LabVIEW还提供了一些高级的字符串处理功能。
例如,我们可以使用字符串匹配模式来根据模式进行条件判断,而不是仅仅判断字符串的相等或不等。
我们还可以使用字符串替换和拆分等功能来对字符串进行更复杂的操作。
这些高级功能可以帮助我们更好地处理各种字符串输入。
LabVIEW的字符串条件结构是一种非常实用的工具,可以根据字符串的值来决定程序的执行路径。
labview 第5章 字符串和文件

第五章 字符串和文件I/O5.1 字符串字符串是ASCII 字符的集合。
如同其他语言一样,LabVIEW 也提供了各种处理字符串的功能,如果想获得字符串的例子,可查看Examples\General\strings.llb 。
下面扼要介绍一些内容。
●创建字符串控制对象和显示对象可以在Controls»String & Table 中看到右边所显示字符串控制对象和显示对象。
还可以使用操作工具或者标签工具输入或者改变字符串控制对象中的文本。
用移位工具拖曳字符串控制对象和显示对象的边角可以增大它们的面积。
练习 5-1 组合字符串目的:使用一些字符串功能函数将一个数值转换成字符串,并把该字符串和其他一些字符串连接起来组成一个新的输出字符串。
前面板打开一个新的前面板,按照下图向其中添加对象。
其中的两个字符串控制对象和数值控制对象可以合并成一个输出字符串并显示在字符串显示器中。
数值显示器显示出字符串的长度。
本练习中输出字符串是一个GPIB (IEEE 488)命令字符串,它可用来与和串口仪器(RS-232 或者 RS-422)进行通信。
流程图●Format Into String 函数(Functions»String )——在本练习中,它用于对数值和字符串进行格式化,使它们成为一个输出字符串。
用变形工具可以添加三个加和输入。
●String Length函数(Functions»String)——在本练习中,它用于返回一个字符串的字节数●执行该VI。
注意,Format Into String 功能函数将两个字符串控制对象和数值控制对象组合成一个输出字符串。
●把该VI保存为Build String.vi,在下一个练习中还将用到这个VI。
●字符串格式的设定:选中Format Into String函数,单击右键,在快速菜单中选择EditFormat String,可分别对个输入的各部分格式做设定。
labview第五章

本地变量相当于传统编程语言中的局部变量,可以在同 一个程序内部使用。 • 创建局部变量的方法有两种: 创建局部变量的方法有两种: (1)直接为前面板对象创建局部变量 (2)通过函数选板创建局部变量
注意:局部变量具有读、 注意:局部变量具有读、写两种属性
例:采集产生一个随机数,大于等于0.5LDE灯亮
A B C D
选择标签
平铺式
注:顺序结构输出隧道只能有一个数据源。 要想节约框图空间选用叠层顺序结构,使用单 层顺序结构可以避免使用局部变量。避免过度使 用顺序结构。
例:计算生成等于某个给定值的随机数据所用时间
5.6 公式节点(Formula Node) 公式节点( )
公式节点是一个大小可变的方框,可以利用它 直接在流程图中输入公式。从函数选板»结构中选 择公式节点就可以把它放到流程图中。当某个等式 有很多变量或者非常复杂时,这个功能就非常有用。 例如等式:y = x2 + x + 1使用公式节点可以表示为:
输入端子放在循环外部,只在循环运行前读入一次。
例:产生随机数
For 循环和While循环的索引
注:自动索引:循环次数由数组长度决定,多个数组输入 由最小的决定。 禁止索引:循环次数有计数端子决定。
5.3 移位寄存器和反馈节点
移位寄存器可以将数据从一个循环周期传递到 另外一个周期。在程序设计中,经常要用到它.创 建一个移位寄存器的方法是,用鼠标右键单击循环 的左边或者右边,在快捷菜单中选择 添加移位寄存 器。 移位寄存器在框图上用在循环边框上相应的一 对端子来表示。右边的端子中存储了一个周期完成 后的数据,这些数据在这个周期完成之后将被转移 到左边的端子,赋给下一个周期。移位寄存器可以 转移各种类型的数据--数值、布尔数、数组、字 符串等等。它会自动适应与它连接的第一个对象的 数据类型。下图表示了它的工作过程。
labview_字符串和文件

第五章字符串和文件I/O
5.2.1文件 I/O 功能函数
大多数的文件I/O操作都包括三个基本的步骤:打开一个已有的文件或者新 建一个文件;对文件进行读写;关闭文件。LabVIEW在编程»文件 I/O中提供 了很多有用的工具 VI。
第五章字符串和文件I/O
以下5个功能从左到右对应于上面5个图标。
写入测量文件 ——用于将由单精度数值组成的一维或者二维数组转换成文 本字符串,再将它写入一个新建文件或者已有文件。该 VI先打开或者新建文 件,之后再关闭文件。它可以用于创建能够被大多数电子表格软件读取的文本 文件。 2. 读取测量文件 ——用于从某个文件的特定位置开始读取指定个数的行或者 列内容,再将数据转换成二维、单精度数组。该 VI先打开文件,之后再关闭 文件。它可以用于读取用文本格式存储的电子表格文件。 3. 写入文本文件 ——用于将一个字符串写入一个新建文件或者已有文件。该 VI打开这个文件、写入数据,再关闭文件。 4. 读取文本文件 ——用于从某个文件的特定位置开始读取指定个数的字符。 该VI先打开文件,之后再关闭文件。 5. 扫描文本文件 ——用于从某个文件的特定位置开始读取指定个数的行内容。 该VI先打开文件,之后再关闭文件。 1.
Format Into String函数 (Functions» String)——将温度 数据转换成字符串,并且在数据 后面增加一个逗号。
空路径常量(编程» 文件 I\O» -文件常 量)——用于初始化 移位寄存器,保证需 要对文件写入数据时 路径是空的。会出现 一个文件对话框。
Write Characters To File VI( (Functions» File I/O)
Header SET Number 5.50
输出字符串 SET 5.5000 VOLTS
LabVIEW 2014 基础实例教程 (5)

5.3.2 改变对象颜色
前景色和背景色是前面板对象的两个重要属性,合理搭配对象的前景色和背景色会 使用户的程序增色不少。
“设置颜色”对话框
字体设置对话框
5.3.3 设置对象的字体
5.3.4 在窗口中添加标签
工具模板
5.3.5
对象编辑窗口
在前面板中放置如图所示的控件,选中放置的控件,单击鼠标右键弹出快 捷菜单,选择“高级”→“自定义”命令,弹出该控件的编辑窗口。
“对齐对象”工具
“对齐对象”下拉列表
5.4.2 课堂练习——控件布局
选中目标对象
左边缘对齐后的对象
5.4.3 分布对象
选中对象,在工具条中单击“分布对象”按钮,会出现一个图形化的下拉选单,在选 单中可以选择各种分布方式。选单中的各图标很直观的表示了各种不同的分布方式。
“分布对象”下拉列表
选中目标对象
5.4.6 课堂练习——组合控件
选中目标对象
组合后的对象
5.4.7 网格排布
网格可以作为排列控件的参考,显示与隐藏可选择菜单栏中的“具”→“选 项”命令,弹出“选项”对话框,选择“前面板”选项,在“前面板网格”选项 下设置前面板网格,包括“显示前面板网格”、“默认前面板网格大小”、“前 面板背景对比度”、“启用前面板网格对齐”、“缩放新对象以匹配网格大
第5章 编辑VI
5.1 编辑VI
5.1.1 使用断点
处于断点设置
设置断点
清除断点/清除状态的工具模板
5.1.2 使用探针 5.1.3 设置图标
“种植系统”图标
“创建对象”图标 VI图标样例
“创建锥面”图标
1.图标编辑器对话框的选项卡说明 2.工具栏功能 3.绘图区设置
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
打开了“正则表达式”选 项
所有匹配都替换为 “NULL”
[a-zA-Z]*at ——“at”之前有0或多个字母
特殊 字符
解释
.
* +
匹配任何单个字符,换行除外。例如:.t匹配at、bt、2t、_t,等等
标记可以出现0次或多次的模式。例如be*将e标记为可出现0次或多次的模式,因此 be*匹配believe中的be、beep中的bee和bat中的b 标记出现1次或多次的模式。例如 be+可以匹配believe中的be、 beep中的bee,但不 能匹配bat 标记出现0次或1次的模式。be?可以匹配believe中的be、 bee中的be、 beep中的be, 以及bat中的b 标记模式的一部分,可以出现任意次数。例如be{2} 匹配至少跟随了两个e的b字符, be{0,3}匹配至多跟随了三个e的b字符,be{2,3}匹配至少跟随了两个e,至多跟随了三 个e的b字符 建立字符类,可以匹配某个字符集中的任何一个字符。例如[abc123]匹配字符a、b、 c、1、 2或3中的任何一个 指定字符范围。例如 [a-z]匹配任何小写字母,[a-zA-Z0-9]匹配任何小写、大写或数字 字符。可以使用字符类匹配任何不在某一字符集中的字符,将^号添加到字符类的开 始。例如[^0-9]匹配任何非数字字符,[^a-zA-Z0-9]匹配任何非字母非数字字符 表示部分匹配,使用竖线|分割可能的匹配,例如(cat|dog) catcher匹配cat catcher或 dog catcher。也可使用多个部分匹配,例如(a|the) (cat|dog)匹配a cat、a dog、the cat或the dog 表明多个可能的匹配,例如cat|dog匹配catcher的cat或者big dog中的dog
①
②
③
命令
串口/GPIB接口
执行结果
1. 字符串 • 字符串相关控件
控件选板,新式->字符串与路径子选板和列表与表格子选 板
• 字符串常量
函数选板,编程->字符串
输入任意字符串
其他预定义 字符串常量
1. 字符串 1. 字符串输入控件和输出显示控件
运行程序
2. 组合框控件
组合框输入控件, 未定义任何项
功能:将DDT类型信号写入LabVIEW自定义的测量文件,
文件可以是文本文件(.lvm),或者二进制文件(.tdms 和.tdm)
Express VI,通过对话框配置 参数和功能 选择文本还是二进 制格式
二维标量数组 - 行是通道
2. 文件I/O 4. 读取测量文件
(Read From Measurement File)
1个汉字占2个字节 (byte)
2. 连接字符串(Concatenate Strings) 功能:按顺序连接所有输入字符串 成为一个新字符串;输入可以为1维
字符串数组
1. 字符串
3. 截取字符串(String Subset) 功能:从输入字符串的“偏移量” 位置开始,取出所要长度的子字符串
字符串中字符的索引 从0开始!! 未接“长度”参数表示到串 尾 注意中文的处理
函数选板,编程->文件I/O子选板
简单文件I/O函数
高级文件I/O函数 (部分) 路径处理
配置文件(.ini)I/O 函数,保存应用程序 参数配置
文件路径控件和常量
控件选板,新式-> 字符串与路径 函数选板,编程-> 文件I/O->文件常量
2. 文件I/O
电子表格文件?
按表格形式组织的文本文件,行间采用换行 分隔,行内数据采用指定符号分隔
1. 字符串
7. 匹配正则表达式(Match Regular Expression)
功能:从“输入字符串”的“偏移量”位置开始查找“正则 表达式”,找到后,按其所在位置将“输入字符串”分为 三段
从一段文本中提取Email地 址(此处给出ቤተ መጻሕፍቲ ባይዱ种不同的 正则表达式方案)
1. 字符串 8. 格式化日期/时间字符串 (Format Date/Time String)
功能:从文本(.lvm)或者二进制(.tdms和.tdm)格式的
1. 字符串
常用‘\’代码字符
代码 \b \f \n \r LabVIEW中含义 退格符 进格符 换行符 回车符 代码 \t \s \\ %% LabVIEW中含义 制表符 空格符 反斜线:“\” 百分比符号
1. 字符串 典型字符串操作函数
1. 字符串长度(String Length) 功能:返回字符串的长度(以字节为单位)
LabVIEW编程及虚拟仪器设计
第5讲——字符串和文件 I/O
上一讲内容回顾
1. 图形显示
波形图(Graph,新替换旧),波形图表(Chart,新 接续在旧后), XY图,强度图(用颜色表示第3维数 据)
2. Express VI(快速VI)
通过对话框配置参数,输入或输出DDT类型(近似为 波形数组)
以上两个函数,弹出快捷 菜单,选择编辑格式字符 串选项 通过对话框配置格式字符 串,降低难度
2. 文件I/O
• 计算机文件供计算机程序所使用,是存储信息的 容器,且经常基于持久存储机制如磁盘驱动器;
文件的持久存储指的是当前运行的程序结束后,文件仍可 被其他程序所使用
• 操作系统中,文件组织为字节序列 • 文本文件(text file)包含按行组织的由字符组成 的可读文本,且在最后一行后包含文件结束符 (end-of-file)
文本文件采用文本编辑 程序(如记事本)打开
2. 文件I/O
• 二进制文件(binary file)包含任意内容,如可执 行程序,图像,声音,压缩过的其他文件……
图片文件,JPG格式
二进制文件采用十六进制编辑程序(如UltraEdit)打开
使用文本编辑程序打开二进制文件时出现“乱 码”,即强制按字符显示实际上不是字符的二 进制数据
② 在某一项上弹出快捷菜单
1. 字符串 字符串的显示方式
字符串输入控件、输出显示控件,通过快捷菜单配 置为如下显示方式之一: a) 正常显示(Normal Display)- 显示可打印字符 b) ‘\’代码显示( ‘\’ Codes Display)- 采用反斜 杠代码显示正常方式下不可显示的字符如空格, 制表符,等等;多用于程序调试、向仪器设备 传输数据 c) 密码显示(Password Display)- 以*号显示所有字 符,包括空白 d) 十六进制显示(Hex Display)- 采用十六进制显 示所有字符,用于程序调试
6. 搜索替换字符串(Search and Replace String)
功能:查找并替换指定字符串
快捷菜单可打开“正则表达式”选项
1. 字符串 正则表达式(Regular Expression):使用特殊
语法的表达式,其中包含查找复杂字符串所依照 的规则或模式;类似文件名搜索时使用的通配符* 和?,但更复杂和强大
输入和输出控件底色不同
组合框出现项列表
输出所选项对应值 (字符串) 定义多个“项-值” 对
1. 字符串 3. 表格
表格是字符串组成的2维数组
列首 列首的显示通过快捷菜单 的显示项子菜单设置
“列首字符串”属性
采用属性节点指定列首
1. 字符串 3. 表格 将表格放在循环内?
1D 2D 每次循环送入表格的二维数组 仅包含新数据行,新数据行替 换旧数据行
3. 局部变量和全局变量
局部变量:打破输入和输出显示控件的读写限制 全局变量:在VI文件之间共享数据 注意并行运行程序段之间的竞态条件
4. 属性节点,通过编程动态读取/设置前面板控件属性
本讲内容
1. 字符串 2. 文件I/O
1. 字符串 字符串是ASCII字符(和其他字符)的集合, 用于文本的屏幕显示,仪器控制时的命令 与结果传送和文本文件操作
符串,并写入到文件中;若“文件路径”参数未接入,则 弹出文件对话框;“分隔符”参数指定行内分隔符,默认 为制表符\t
将2维整数数组写入电子表格文件(对应前例)
采用默认的制表符“\t”作为分隔符
指定使用逗号“,”作为分隔符
2. 文件I/O 2. 读取电子表格文件
(Read From Spreadsheet File) 功能:从电子表格形式的文本文件中读取数据并转化为1维
2. 文件I/O 文件I/O操作步骤,两种编程思路
创建/打开文件
读写文件
创建/打开, 读写,关闭文件
② 使用简单函数/VI,内含文件I/O 的各个步骤,使用简单,灵活性差 (高层函数)
关闭文件
① 使用高级函数/VI,由编程者管理各 个步骤,使用稍复杂,但灵活,效率高 (底层函数)
2. 文件I/O
或2维数组,数组元素类型为整型、浮点型或字符串型
多态VI:具有相似功能和不同 参数类型的VI的集合 读取1.dat,默认为采用制表符“\t”分隔行内数据
多态VI选择器 在列表中选择具体使 用哪个函数/VI实例
2. 文件I/O 3. 写入测量文件
(Write To Measurement File)
功能:以指定的格式显示时间字符串 9. 扫描字符串 (Scan From String) 功能:扫描输入字符串,提取表示数据的子串并按 照给定格式进行转换
提取和转化浮点数
可能为电压表返回的电压查 询结果(伏特,直流,5.36)
1. 字符串
10. 格式化写入字符串 (Format Into String) 功能:将多种数据转化为字符串
?
{}
[]
-
()
|
^ $
仅匹配字符串的开始,例如^dog匹配dog catcher中的dog,但不匹配the dog中的 dog 仅匹配字符串的结尾。