第七课 文件存储技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
20
C. 二进制文件-数据记录随机访问
21
练习:写入位图文件 VI
使用二进制文件I/O,按特定格式将数据写入文件。
练习位置:Exercise/Exercise 7.2
22Baidu Nhomakorabea
练习:写入位图文件 VI
• 如交换BITMAPFILEHEADER VI 和BITMAPINFOHEADER VI的顺序,生成的 位图文件是否仍然正确?为什么? • 在“写入二进制文件”函数中,无需指定字节顺序。为什么?
12
C. 二进制文件-存储整数
二进制值U8值 000000000 000000011 000000102 11111111255
13
C. 二进制文件-存储整数
• 多字节整数被拆分为单个字节,并按little-endian或 big-endian字节序存储在文件中 • 使用“写入二进制文件”函数选择采用big-endian或 little-endian字节序存储数据
− 提供TDMS文件所有属性和指针信息的二进制索引文 件(*.tdms_index) − 加快读取文件时的速度 − 丢失后可重新自动生成
• TDMS文件格式的内部架构已公开
25
D. TDMS文件-数据层次结构
• 通道
− 存储测量信号或原始数据至TDMS文件 − 每个通道可包含描述数据的属性 − 信号中存储的数据以二进制格式存储在磁盘上,以节省 磁盘空间并提高效率
18
C. 二进制文件-随机访问
• 使用“设置文件位置”VI设置一个偏移量,指向要读 取的文件
• 偏移量以字节为单位;因此必须根据文件存储格 式计算偏移量
19
C. 二进制文件-数据记录
• 数据记录文件为特殊的二进制文件格式,用于存 储一系列记录 • 每条记录由一个簇表示,簇中可包含不同数据类 型的数据
U32值 1 little-endian值 00000001 00000000 00000000 00000000 big-endian值 00000000 00000000 00000000 00000001
14
C. 二进制文件-存储其它数据类型
• 字符串被存储为一串无符号8位整数,每个整数对 应ASCII字符代码换算表(ASCII Character Code Equivalents Table)中的一个值
− 即使用“二进制文件”函数和“文本文件”函数将字符串 写入文件是一样的
• 所有的二进制文件中,数据记录文件最适合于表 示簇
15
C. 二进制文件-存储数组
数组表示为元素的序列 • 元素表示法取决于元素类型 • 数组头使用一个32位的整数表示数组每维的大小 • 范例: 带数组头的2维数组包含下列元素:
2016/6/13
E.INI文件——基本格式
• [Section1 Name]用来表示一个 • KeyName1=value1 用来表示一个参数名和值。
2016/6/13
E.INI文件——API函数
2016/6/13
总结-测验
1. 如需将测试结果存储至文件并分类数据至不同描述性 组,以后需快速按组查看测试结果。应使用下列哪种 文件存储格式? a) 用制表符分隔的ASCII b) 自定义二进制格式 c) TDMS d) 数据记录
D. TDMS文件
TDMS • 技术数据管理流 基于以下原因使用TDMS文件格式: • 存储测试或测量数据 • 为数据分组创建新的数据结构 • 存储数据信息 • 高速读写数据
24
D. TDMS文件-文件格式
• TDMS文件
− 包含数据和存储数据属性的二进制文件(.tdms)
• TDMS_Index file
− [00000000]
• 其它值表示真
− [00000001]、[01000110]、[11111111]……
• 文件被分为以字节为单位的块,简化了读取和 处理文件的操作
11
C. 二进制文件-存储布尔值
文件内容 方法A 00000001 00000001 00000000 00000001 00000000 00000001 方法B 00101011
• 使用TDM Excel嵌入工具
− 通过Microsoft Excel读取TDMS文件
27
D. TDMS文件-TDMS API
28
D. TDMS文件-写入数据
• 将数据以数据流形式写入指定TDMS文件
• 待写入的数据取决于输入的组名称和通道名称
29
D. TDMS文件-读取数据
读取指定TDMS文件,从指定通道和/或通道组返回数 据
51
强化练习 文件存储技术
练习位置:Exercise/Exercise 7.4
2016/6/13
第7课 文件存储技术
A. B. C. D. E. 理解文件I/O 文件格式 二进制文件 TDMS文件 INI文件
A. 理解文件I/O
• 文件I/O对文件执行读/写操作 • 典型文件I/O操作包括下列流程:
打开/ 创建/ 替换文件
读取 和/或 写入文件
关闭 文件
检查 错误
2
A. 理解文件I/O
将文件写入计算机硬盘时,文件的最底层表示为一 串二进制位
30
D. TDMS文件-属性设置
设置TDMS文件、通道组或通道的属性
31
D. TDMS文件-获取属性
返回TDMS文件、通道组或通道的属性
32
D. TDMS文件-文件查看器
打开TDMS文件,在TDMS文件查看器对话框中 显示文件数据
33
D. TDMS文件-TDM Excel插件
34
练习:读取TDMS文件
学习从TDMS文件中读取数据的方法。
练习位置:Exercise/Exercise 7.3
35
练习:读取TDMS文件
• 使用ASCII文件或自定义二进制文件实现记录和读 取的难度在于?
E.INI文件
• INI文件原来是操作系统使用的一种应用程 序配置文件,可使用文本编辑器打开并对 其进行修改。 • 在labVIEW中,可对应用程序中的一些常量 进行保存和修改。
40
总结-测验答案
1. 如需将测试结果存储至文件并分类数据至不同描述性 组,以后需快速按组查看测试结果。应使用下列哪种 文件存储格式? a) 用制表符分隔的ASCII b) 自定义二进制格式 c) TDMS d) 数据记录
41
总结-测验
2. 如要编写一个保存PNG图片文件格式的程序,应使用下 列哪种文件存储格式? a) 存储文件VI b) 二进制文件函数 c) ASCII文件VI d) 数据记录文件VI
42
总结-测验答案
2. 如要编写一个保存PNG图片文件格式的程序,应使用下 列哪种文件存储格式? a) 存储文件VI b) 二进制文件函数 c) ASCII文件VI d) 数据记录文件VI
43
总结-测验
3. 如要将数据存储为便于其它工程师使用Microsoft Excel应用 程序进行分析的格式,应使用下列哪种文件存储格式? a) 用制表符分隔的ASCII b) 自定义二进制格式 c) TDMS d) 数据记录
44
总结-测验答案
3. 如要将数据存储为便于其它工程师使用Microsoft Excel应用 程序进行分析的格式,应使用下列哪种文件存储格式? a) 用制表符分隔的ASCII b) 自定义二进制格式 c) TDMS d) 数据记录
45
总结-测验
4. 下列哪一项是“10”的无符号32位整数(U32)的little-endian正 确表示? a) 00001010 00000000 00000000 00000000 b) 00000000 00000000 00000000 00001010 c) 00001010 d) 01010000 00000000 00000000 00000000
• 通道组
− TDMS文件段,包含属性及一个或多个通道 − 通道组用于组织数据以及存储用于多个通道的信息
26
D. TDMS文件-访问TDMS文件
• 使用写入测量文件和读取测量文件 Express VI
− 快速保存和检索TDMS格式数据 − 不易控制数据分组和数据属性
• 使用TDMS API
− 打开、写入、读取和关闭TDMS文件的一组函数 − 允许以通道组或通道的形式组织数据
ASCII TDMS
二进制
3
A. 理解文件I/O
• 高层VI
− 执行文件I/O操作的3个步骤(打 开、读取/写入和关闭) − 操作效率可能低于执行单步操作 的函数
• 底层VI
− 每步一个独立VI − 如要写入数据到循环中的文件, 可使用底层文件I/O函数
4
B. 文件格式
LabVIEW可使用或创建下列文件格式: • 二进制-所有其它文件格式的基础 • ASCII-特定类型的二进制文件,多数程序均使用 此文件格式 • LVM-LabVIEW测量数据文件(.lvm),由制表符分隔 的文本文件。使用电子表格或文本编辑程序打开 此类文件 • TDMS-专用于NI产品的二进制文件,由2个独立的 文件(二进制文件和二进制索引文件)组成
练习位置:Exercise/Exercise 7.1
8
C. 二进制文件
使用“二进制文件”函数直接处理二进制文件
9
C. 二进制文件-位/字节?
• 每一位由一个二进制值表示
− 每一位只能表示“开”(1)或“关”(0)
• 每个字节包含8个位
0位 00000000字节
10
C. 二进制文件-存储布尔值
• LabVIEW的二进制文件中使用8个二进制位表示 布尔值 • 8位二进制0表示假
5
B. 文本文件
• 何时使用文本文件:
− 需要通过其它应用程序访问该文件 − 磁盘空间及文件I/O传输速度不是主要考虑因素 − 无需执行随机读写操作 − 数字精度要求可忽略
6
B. 文本文件
7
练习:温度保存练习
给定当前温度和最后三次温度的平均值绘制 图表,请修改VI,将当前温度值记录到文本 文件中。
总结-测验
5. 二进制文件函数可用于读取ASCII文件。 a) 对 b) 错
48
总结-测验答案
5. 二进制文件函数可用于读取ASCII文件。 a) 对 b) 错
49
总结-测验
6. TDMS文件仅保存通道或通道组级别的属性。 a) 对 b) 错
50
总结-测验答案
6. TDMS文件仅保存通道或通道组级别的属性。 a) 对 b) 错
46
总结-测验答案
4. 下列哪一项是“10”的无符号32位整数(U32)的little-endian正 确表示? a) 00001010 00000000 00000000 00000000 b) 00000000 00000000 00000000 00001010 c) 00001010 d) 01010000 00000000 00000000 00000000
行整数、列整数和数据数组
16
C. 二进制文件-顺序/随机访问
两种访问数据的方法: • 顺序访问-从文件起始处按顺序依次读取 • 随机访问-从文件的任意位置访问数据
17
C. 二进制文件-顺序访问
• 如需顺序访问文件中的所有数据,可调用“获取文件 大小”函数,根据文件中各项的大小和存储方式,计 算文件中项的总数 • 将项的数量连至“读取二进制文件”函数的“总数”接线 端