LabVIEW中文字檔案的儲存與讀取方法
背景
在軟體開發中,資料檔案的儲存與讀取操作一般是必不可少的環節。存取資料的檔案格式大致可分為兩大類,分別是文字格式和二進位制格式,其中,文字格式(或叫ASCII碼檔案)通用性強、直觀,但佔用空間比較大,存取速度比較慢,而二進位制檔案存取速度快、佔用空間小,但通用性差,使用者需要知道儲存資料的資料型別,才可以準確還原檔案內容。
這次通過例子說下在LabVIEW平臺中關於文字檔案的讀寫操作方法。
例1:最簡單的一個例子
例子要求:將字串“我愛LabVIEW!”以文字檔案的格式儲存到計算機的D盤上,檔名稱為“a.txt”,儲存完成後,立即讀出該檔案內容,並顯示到前面板的字串控制元件上。
程式執行後介面如下圖所示:
實現程式碼如下:
程式碼中先後使用了“開啟/建立/替換檔案”、“寫入文字檔案”、“設定檔案位置”、“讀取文字檔案”和“關閉檔案”等函式,可以看出,LabVIEW中文字檔案操作的程式設計方式同其它如C/C 語言類似,遵循著下面的三個步驟:
- 開啟檔案
- 讀寫檔案
- 關閉檔案
需要說明的是,在上面程式碼中,“寫入文字檔案”與“讀取文字檔案”兩個函式之間使用“設定檔案位置”函式,其原因是,將內容寫入文字檔案這步操作執行完畢後,當前檔案的指標位於檔案的末尾,若此時直接讀取檔案內容,將從檔案的末尾讀取,讀取的內容當然為空了,所以此時在不執行“關閉檔案”的操作下,必須手動使用“設定檔案位置”函式將檔案當前指標移動到檔案的開始位置。
例2:實用的一個例子
該例子模擬一個實際的資料採集與存取場景。在例子中產生一個正弦波形資料,然後將波形資料以文字檔案的格式儲存到計算機的D盤上,檔名稱為“b.txt”,波形資料點數為500點,取樣頻率為1000Hz,正弦訊號頻率10Hz,幅值為5,檔案中不僅包含了每個取樣點的資料值,也包含了取樣間隔資訊。同樣,在儲存完成後,立即讀出該檔案內容,將波形資料顯示到前面板的波形圖控制元件上。
先看下程式執行後的介面:
儲存的檔案內容如下:
實現程式碼如下:
整體操作步驟同前例相同,依照著開啟檔案、讀寫檔案、關閉檔案的順序執行。
在波形資料儲存方面,程式碼中使用“正弦函式”輸出一個正弦波形資料,在波形資料中抽取出取樣間隔dt和取樣資料Y,然後將取樣資料Y使用“陣列至電子表格字串轉換”函式將其轉換為字串,接著使用“格式化寫入字串”函式將所有內容轉換為字串,最後使用“寫入文字檔案”函式即可將取樣間隔和取樣資料寫入文字檔案中。
在波形資料讀取方面,首先將檔案指標移動到檔案開始位置,使用“讀取文字檔案”函式將檔案所有內容讀出為一個字串,然後在字串中使用“掃描字串”函式先將取樣間隔dt抽取出來,然後使用“電子表格字串至陣列轉換”函式將剩下的內容讀出為二維的double型陣列,索引第0列即為取樣資料Y的值,最後將dt和Y組合成一個波形資料輸出到波形圖控制元件上進行顯示即可。
結論
文字檔案的讀寫操作,在圖形化的程式語言LabVIEW平臺上實現,相對於其它高階程式語言如C/C 來講,由於LabVIEW中對檔案操作類的函式進行了高度封裝,因此,在程式設計難度上要低的多,具有較高的開發效率。
大家加關注並私信回覆:LabVIEW006,可獲取該文章對應的LabVIEW原程式下載。
歡迎加關注,共同交流。