文档详情

labview2014字符串和文件 io第5讲

今***
实名认证
店铺
PPT
1.64MB
约41页
文档ID:108379710
labview2014字符串和文件 io第5讲_第1页
1/41

第5讲——字符串和文件 I/O,LabVIEW编程及虚拟仪器设计,上一讲内容回顾,图形显示 波形图(Graph,新替换旧),波形图表(Chart,新接续在旧后), XY图,强度图(用颜色表示第3维数据) Express VI(快速VI) 通过对话框配置参数,输入或输出DDT类型(近似为波形数组) 局部变量和全局变量 局部变量:打破输入和输出显示控件的读写限制 全局变量:在VI文件之间共享数据 注意并行运行程序段之间的竞态条件 属性节点,通过编程动态读取/设置前面板控件属性,本讲内容,字符串 文件I/O,1. 字符串,字符串是ASCII字符(和其他字符)的集合,用于文本的屏幕显示,仪器控制时的命令与结果传送和文本文件操作,①,②,③,1. 字符串,字符串相关控件 控件选板,新式-字符串与路径子选板和列表与表格子选板 字符串常量 函数选板,编程-字符串,,,,,输入任意字符串,其他预定义字符串常量,,1. 字符串,1. 字符串输入控件和输出显示控件 2. 组合框控件,输入和输出控件底色不同,,运行程序,组合框输入控件,未定义任何项,,3. 表格 表格是字符串组成的2维数组,1. 字符串,采用属性节点指定列首,“列首字符串”属性,列首的显示通过快捷菜单的显示项子菜单设置,,列首,,3. 表格 将表格放在循环内?,1. 字符串,每次循环送入表格的二维数组仅包含新数据行,新数据行替换旧数据行,,,,等待函数:避免表格刷新过快无法观察其中数据,1. 字符串,4. 树形控件 按层次组织数据,,,,① 点击输入树形控件项,将鼠标指针所在项(和子项)降低一个层次,将鼠标指针所在项(和子项)提高一个层次,,,② 在某一项上弹出快捷菜单,,③ 编辑每一项的标识符(Tag),④ 树形控件输出所选项的标识符,1. 字符串,字符串的显示方式 字符串输入控件、输出显示控件,通过快捷菜单配置为如下显示方式之一: 正常显示(Normal Display)- 显示可打印字符 ‘\’代码显示( ‘\’ Codes Display)- 采用反斜杠代码显示正常方式下不可显示的字符如空格,制表符,等等;多用于程序调试、向仪器设备传输数据 密码显示(Password Display)- 以*号显示所有字符,包括空白 十六进制显示(Hex Display)- 采用十六进制显示所有字符,用于程序调试,1. 字符串,常用‘\’代码字符,1. 字符串,典型字符串操作函数 1. 字符串长度(String Length) 功能:返回字符串的长度(以字节为单位) 2. 连接字符串(Concatenate Strings) 功能:按顺序连接所有输入字符串 成为一个新字符串;输入可以为1维 字符串数组,1个汉字占2个字节(byte),1. 字符串,3. 截取字符串(String Subset) 功能:从输入字符串的“偏移量” 位置开始,取出所要长度的子字符串 4. 转换为大写字母(To Upper Case)和转换为小写字母( To Lower Case ),字符串中字符的索引从0开始!!,未接“长度”参数表示到串尾,注意中文的处理,1. 字符串,5. 替换子字符串(Replace Substring) 功能:删除“偏移量”开始的“长度”个字符的子字符串,然后插入“子字符串”;即在指定位置插入(“长度”为0)、删除(“子字符串”为空)或替换子字符串 6. 搜索替换字符串(Search and Replace String) 功能:查找并替换指定字符串,快捷菜单可打开“正则表达式”选项,1. 字符串,正则表达式(Regular Expression):使用特殊语法的表达式,其中包含查找复杂字符串所依照的规则或模式;类似文件名搜索时使用的通配符*和?,但更复杂和强大,[a-zA-Z]*at ——“at”之前有0或多个字母,,寻找和替换所有匹配,,打开了“正则表达式”选项,,所有匹配都替换为“NULL”,,1. 字符串,7. 匹配正则表达式(Match Regular Expression) 功能:从“输入字符串”的“偏移量”位置开始查找“正则表达式”,找到后,按其所在位置将“输入字符串”分为三段,从一段文本中提取Email地址(此处给出两种不同的正则表达式方案),1. 字符串,8. 格式化日期/时间字符串 (Format Date/Time String) 功能:以指定的格式显示时间字符串 9. 扫描字符串 (Scan From String) 功能:扫描输入字符串,提取表示数据的子串并按照给定格式进行转换,提取和转化浮点数,,可能为电压表返回的电压查询结果(伏特,直流,5.36),,1. 字符串,10. 格式化写入字符串 (Format Into String) 功能:将多种数据转化为字符串,以上两个函数,弹出快捷菜单,选择编辑格式字符串选项 通过对话框配置格式字符串,降低难度,2. 文件I/O,计算机文件供计算机程序所使用,是存储信息的容器,且经常基于持久存储机制如磁盘驱动器;文件的持久存储指的是当前运行的程序结束后,文件仍可被其他程序所使用 操作系统中,文件组织为字节序列 文本文件(text file)包含按行组织的由字符组成的可读文本,且在最后一行后包含文件结束符(end-of-file),文本文件采用文本编辑程序(如记事本)打开,2. 文件I/O,二进制文件(binary file)包含任意内容,如可执行程序,图像,声音,压缩过的其他文件……,图片文件,JPG格式,二进制文件采用十六进制编辑程序(如UltraEdit)打开,使用文本编辑程序打开二进制文件时出现“乱码”,即强制按字符显示实际上不是字符的二进制数据,2. 文件I/O,文本文件简单直观,很多程序都可打开,但占据较多存储空间;二进制文件占据较少空间,但具体数据存储格式由程序自定义,只有特定程序可以打开,2. 文件I/O,LabVIEW提供了丰富的文件I/O函数和功能,主要包括: 打开和关闭文件 移动和重新命名文件与目录 改变文件属性 在文件中读取和写入数据 创建、修改和读取配置文件,2. 文件I/O,文件I/O操作步骤,两种编程思路,创建/打开文件,① 使用高级函数/VI,由编程者管理各个步骤,使用稍复杂,但灵活,效率高 (底层函数),2. 文件I/O,函数选板,编程-文件I/O子选板 文件路径控件和常量,简单文件I/O函数,高级文件I/O函数 (部分),,,配置文件(.ini)I/O函数,保存应用程序参数配置,,,路径处理,,控件选板,新式-字符串与路径,函数选板,编程-文件I/O-文件常量,2. 文件I/O,电子表格文件? 按表格形式组织的文本文件,行间采用换行分隔,行内数据采用指定符号分隔 例:存储二维整数数组的电子表格文件,1.dat,行内数据采用制表符(\t)分隔,2.dat,行内数据采用逗号(,)分隔,经过文本导入向导,在Excel中打开,,,2. 文件I/O,文件I/O的简单函数 1. 写入电子表格文件 (Write To Spreadsheet File) 功能:将1维或2维数值或字符串数组转化为表格形式的字符串,并写入到文件中;若“文件路径”参数未接入,则弹出文件对话框;“分隔符”参数指定行内分隔符,默认为制表符\t,采用默认的制表符“\t”作为分隔符,指定使用逗号“,”作为分隔符,将2维整数数组写入电子表格文件(对应前例),2. 文件I/O,2. 读取电子表格文件 (Read From Spreadsheet File) 功能:从电子表格形式的文本文件中读取数据并转化为1维或2维数组,数组元素类型为整型、浮点型或字符串型,多态VI选择器,,在列表中选择具体使用哪个函数/VI实例,,读取1.dat,默认为采用制表符“\t”分隔行内数据,多态VI:具有相似功能和不同参数类型的VI的集合,2. 文件I/O,3. 写入测量文件 (Write To Measurement File) 功能:将DDT类型信号写入LabVIEW自定义的测量文件,文件可以是文本文件(.lvm),或者二进制文件(.tdms和.tdm),Express VI,通过对话框配置参数和功能,选择文本还是二进制格式,,,二维标量数组 - 行是通道,,2. 文件I/O,4. 读取测量文件 (Read From Measurement File) 功能:从文本(.lvm)或者二进制(.tdms和.tdm)格式的测量文件中读取DDT类型信号,Express VI,通过对话框配置参数和功能,2. 文件I/O,以上涉及电子表格文件和测量文件的函数都是在内部封装了多个文件操作步骤的简单函数。

文件I/O的高级函数 高级函数经常使用文件引用句柄(refnum),文件引用句柄是代表文件(及其资源)的唯一标识符 高级函数通常以引用句柄和错误簇串在一起使用:,打开/新建 文件,读/写文件,关闭文件,错误簇,传递错误信息,,,文件引用句柄(refnum),用于访问已打开的文件资源,,,2. 文件I/O,在循环中使用文件I/O函数的效率问题,创建/打开, 读写,关闭文件,在循环内部使用简单函数,每次循环都执行打开文件和关闭文件的多余步骤,效率较低,使用高级函数,在循环外部打开和关闭文件,在循环内部进行读/写,效率较高,2. 文件I/O,1. 打开/创建/替换文件 (Open/Create/Replace File) 功能:打开已有文件,或创建新文件并打开,或替换已有文件并打开;打开文件后返回文件引用句柄;未接入“文件路径”参数时弹出文件选择对话框 2. 关闭文件(Close File) 功能:关闭输入参数“引用句柄”所代表的已打开文件 3. 格式化写入文件(Format Into File)和扫描文件( Scan From File ) 与字符串相应 函数相似,2. 文件I/O,4. 写入文本文件 (Write to Text File) 功能:将接入“文本”参数的字符串或字符串数组写入文本文件,字符串数组中每个元素将作为文件中的一行;“文件”参数可以是路径或文件引用句柄,2. 文件I/O,5. 读取文本文件 (Read From Text File) 功能:从文本文件中读取指定数目的字符或文本行,,打开该选项读取文本行,以每行文本为元素组成字符串数组,,已打开“读取行”选项,,-1表示读取文件全部内容,,2. 文件I/O,6. 写入二进制文件 (Write To Binary File) 功能:将数据写入二进制文件,采样信息,产生0.1秒的波形,,波形自身频率50 Hz,0.1秒波形包含5个完整正弦周期,,可以直接写入任何数据类型的数据!,2. 文件I/O,7. 读取二进制文件 (Read From Binary File) 功能:从二进制文件中读取数据,空的波形数据,指定二进制文件中存储的数据的类型,5个周期的正弦波形,练习,习题1:采用字符串函数解析如下XML文件,提取各个字段(to, from, heading, body) George John Reminder Don't forget the meeting! ,保存到.xml文件中,从文件中读取后再解析;可考虑使用子VI减少代码量。

XML文件用来存储数据;体现数据及其表示形式相分离的编程思想,练习,,提取Tag对应元素的子VI,保存的.xml文件(UltraEdit),练习,习题2:采用编程的方式生成5×5的2维随机数数组,写入电子表格文件中,分别用记事本和Excel打开。

下载提示
相似文档
正为您匹配相似的精品文档