LabVIEW快速读取文本最后一行的方法

写在前面

在LabVIEW编程过程中,经常需要读取txt、asc甚至csv等格式的文本文件来输入自己想要的信息。当文本文件比较小时,可能注意不到读取文本所消耗的时间,但是当文本文件高达几万行、几十万行时,读取文本的耗时很显然会影响程序运行体验。面对高达几MB、几十MB甚至上百MB的txt文件,本文介绍可以快速读取文本中最后一行数据的方法。相比于传统方法,可以大幅缩短读取最后一行的时间。

在LabVIEW中,可以采取三种方式读取文本文件,这三种分别为:

  • 以电子表格形式读取文本文件,读取后会得到一个二维字符串数据,以换行符为行,以间隔符、空格等设置的符号甄别为列;
  • 以字符形式读取文本文件,读取后会得到一个包含该文本全部字符或部分字符的字符串标量;
  • 以“行”为单位读取文本文件,读取后会得到一个一维字符串数组,其以换行符作为区分每一个元素。

在这里插入图片描述

传统方法读取文本最后一行

在传统的做法中,会用“以电子表格形式读取”和以“行读取”的读取文本文件两种控件来搭获取文本最后一行的程序。下面将展示以这两个控件搭建的程序,同时,为了直观对比,统一采用一个总行数为1553016行、大小为124 MB (130,894,880 字节)的txt文本作为读取对象。
总行数为1553016行、大小为124 MB

普式1:以电子表格形式获取文本最后一行

采用文件IO/以电子表格形式读取文本控件来搭建的获取文本最后一行的程序,及其运行结果如下:
在这里插入图片描述
在这里插入图片描述

普式2:以行读取形式读取文本文件获取文本最后一行

在读取文本文件的右键菜单中,使能“行读取”即可进行以行读取文本文件:
在这里插入图片描述

以此来获取文本最后一行的程序及其运行结果如下:
在这里插入图片描述
在这里插入图片描述

获取文本最后一行的快速方法

在上述的传统方法中,获取1553016行的文本的最后一行都耗费了数秒乃至十余秒的时间,这个时间将会极大地影响程序运行的快速性。为此,搭建了如下几种快速获取文本最后一行的程序:

快式1:巧用逆序字符串来获取文本最后一行

在这里插入图片描述

在这里插入图片描述

快式2:巧用读取位置来获取文本最后一行

在这里插入图片描述
在这里插入图片描述

快式3:巧用逆序字符串+正则来获取文本最后一行

在这里插入图片描述
在这里插入图片描述

数据对比

通过上述4种方法都可以获取文本的最后一行,但是所经历的时间是不一样的,另外,其所能获得的其他信息也不尽相同。为此,特列了一个表进行对比:

方式测试样本所消耗的时间其他
传统普式1:以电子表格形式获取总行数为1553016行、大小为124 MB (130,894,880 字节)的txt文本5.98 秒可直接获得总行数
普式2:以行读取形式获取15.291 秒可直接获得总行数
快速快式1:巧用逆序字符串来获取1.566 秒不可直接获得总行数
快式2:巧用读取位置来获取0.001 秒需要预判最后一行有多少个字符,且不可直接获得总行数
快式3:巧用逆序字符串+正则来获取0.677 秒不可直接获得总行数

最后

在这里提供上述五种获取文本最后一行的源程序vi:

另外,这里提供本人开发的:

本文为博主原创文章,未经博主允许不得转载。如有问题,欢迎指正。

  • 7
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值