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 篇原創文章 · 獲贊 16 · 訪問量 8570
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章