Labview字符串與文件I/O
回到前面板,點擊“路徑”右邊的小圖標:
打開一個對話框,選擇文件的存儲路徑,如圖:
選擇完后,程序即可運行,運行結果如圖:打開記事本,即可看到寫入的文件,如圖:
此程序中利用了For循環(huán)自動索引的功能,一次產(chǎn)生了10個數(shù)據(jù),然后逐一寫入文本。正因為此,“寫入文本文件”是高層文件I/O操作函數(shù),高層文件I/O操作函數(shù)每調(diào)用一次就會實現(xiàn)創(chuàng)建或打開文件,讀寫文件,關閉文件的整個過程。如果需要向文件中連續(xù)寫入數(shù)據(jù),這樣的效率是非常低的。如果想要提高效率,可以采用底層文件I/O操作函數(shù)來實現(xiàn)寫文本文件。
例二:
使用底層文件I/O操作函數(shù)向文本文件寫入數(shù)據(jù)。
圖中框起來的便是底層文件I/O函數(shù)
前面板的構建和例一類似,下面是程序框圖:
從途中可以看出,程序進行循環(huán)后,文件則被打開,這樣就可以一直向文件中輸入數(shù)據(jù),直到循環(huán)結束,才關閉文件,它大大提高了寫文件的效率。
運行結果如圖:
從上圖可以看出,每兩個數(shù)字之間正好間隔一個Tab定界符。
例三:寫電子表格文件
“寫入電子表格文件”函數(shù)的應用與“寫入文本文件”函數(shù)的應用十分相似。它能直接寫入一維或是二維的數(shù)據(jù)。程序框圖如圖:
圖中Generate Waveform.vi也使LabVIEW自帶的一個VI,它與前面所講的Digital Thermometer.vi在同一個文件夾里,它是用于模擬產(chǎn)生抽樣信號的。該函數(shù)默認的是將數(shù)據(jù)在表格中按行排列,那么一個二維數(shù)組的記錄則只有兩行,若在該接口中給其賦值“真”,則數(shù)據(jù)會按列排列。
運行結果如圖:
打開保存的電子表格文件,即可看到數(shù)據(jù)
例四:讀文本文件
該例采用在例一中保存的文件,程序框圖如圖:
說明:其中用到了一個LabVIEW自帶的子VI:Extract Numbers,它位于LabVIEW8.2→examples→general→strings,如圖:
單擊確定后,系統(tǒng)會彈出下面的對話框:
選擇Extract Numbers.vi,它的作用是提取由逗號,分行符號,非數(shù)值字符等分隔開的數(shù)據(jù)所組成的ASCII字符串,并將它們轉換成數(shù)值數(shù)組,用于將讀取的字符串轉換為雙精度數(shù)據(jù)類型的一維數(shù)組。運行結果如圖:
例五:另一種讀取文本文件的方法
上面的例子是用一個函數(shù)完成了,文件的打開,讀取,關閉。和寫入文本文件時一樣,我們也可以通過三個函數(shù)來實現(xiàn)以上的三個步驟,程序框圖如圖:
其中For循環(huán)默認的是自動索引,在連線后,需將圖中框起來的兩個節(jié)點禁用索引。運行結果如圖:
例六:讀取電子表格文件
本例使用例三所產(chǎn)生的表格文件。
程序框圖如圖:
運行結果如圖:
從結果中可以看到,因為例三在生成表格文件時采用的格式為“%.3ft”,所以從該電子表格中讀取數(shù)據(jù)時,中間的一行空白LabVIEW會自動把它們默認為0數(shù)組,從而在波形圖表中顯示的時候會出現(xiàn)中間的一行紅線。
評論