LabVIEW读取文本文件时如何逐行调用并在前面板显示读取行
逐行读取文本文件及前面板显示实现方案
实现逐行迭代读取
- 不要直接将
Read from Text File函数的Read lines模式用于一次性全量读取,可选两种方案实现按迭代节奏逐行读取:方案1:大文件适用(持句柄逐行读)
- 循环外部先调用
Open/Create/Replace File函数打开目标文本文件,获取文件引用号 - 将文件引用接入循环内的
Read from Text File输入端子,保持Read lines模式,同时给函数的计数输入端子赋值1,保证每次调用仅读取1行内容 - 循环内优先运行你需要的其他业务逻辑,逻辑全部跑完后再进入下一次循环触发下一行读取
- 读取到文件末尾时,
Read from Text File会返回空字符串同时抛出错误码4,捕获该错误即可作为循环终止条件,循环结束后务必调用Close File关闭文件引用,避免资源泄漏
方案2:小文件适用(预读全量再迭代)
- 循环外部调用
Read from Text File,设为Read lines模式,一次性将所有行内容读取为一维字符串数组 - 循环内用循环计数端子作为数组索引,每次取出对应下标的单行内容,处理完业务逻辑后进入下一次迭代
- 数组遍历完成后终止循环即可,该方案无需长期持有文件句柄,仅适合体积较小的文本文件使用
- 循环外部先调用
前面板添加文本显示指示器
你无法直接添加控件是因为直接对Read lines模式下的函数输出端子右键创建指示器,此时函数默认输出是字符串数组,和单行显示的字符串控件类型不匹配,按以下步骤操作即可:
- 仅需要显示当前读取行:
- 切换到前面板,打开控件选板→「字符串与路径」→「字符串显示控件」,直接拖放至前面板任意位置
- 回到程序框图,将
Read from Text File每次输出的单行字符串,直接接线到刚创建的字符串显示控件端子即可,每次读取新行时控件内容会自动更新
- 需要展示所有已读取的行:
- 前面板创建列表框控件或者多行字符串显示控件
- 程序框图内用移位寄存器存储已读行的数组,每次读取到新行后将内容追加到数组末尾,再把数组接线到列表框/多行字符串控件的输入端子即可
注意:如果使用预读全量数组的方案,仅需将索引后取出的单条字符串接入显示控件,不要直接把整个字符串数组接到字符串控件端子,否则会触发类型不匹配报错。
内容的提问来源于stack exchange,提问作者joshmusic16
相关产品推荐
相关产品推荐

