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:

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

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

发布了26 篇原创文章 · 获赞 14 · 访问量 4926

猜你喜欢

转载自blog.csdn.net/jaysur/article/details/99226617