新聞中心

EEPW首頁 > 測試測量 > 設計應用 > Labview字符串與文件I/O

Labview字符串與文件I/O

作者: 時間:2017-01-06 來源:網(wǎng)絡 收藏
字符串

字符串是ASCII碼字符的集合,當用戶與GPIB和串行設備的通信,讀寫文本文件以及傳遞文本信息時,字符串都是非常有用的。字符串中的字符有些是可顯示的,有些則是不可顯示的。

本文引用地址:http://2s4d.com/article/201701/337002.htm

LabVIEW在功能模板上的字符串子模板中提供了一整套的字符串處理函數(shù),能夠完成各種字符串處理功能。常用的字符串對象包括字符串輸入控件和字符串顯示控件,它們位于控件→新式→字符串與路徑→字符串輸入控件,字符串顯示控件。如圖:

字符串的顯示方式:

在前面板上放置一個字符串輸入控件,右擊鼠標,彈出如圖所示的菜單:

從上圖中可以看出字符串有4種顯示方式

下圖是“www avrvi.com”分別用這4種方式顯示,如圖:

字符串函數(shù)

打開程序框圖中的字符串函數(shù),如圖:

字符串函數(shù)模板除了包含一般的字符處理函數(shù)以外,還包含各種字符常量,以及字符串與數(shù)字量,路徑的相互轉(zhuǎn)換函數(shù)。

其中最后一行包含了各種常量,可以方便的使用。

字符串應用舉例:

例一:組合字符串

該例的目的是將一些字符串和數(shù)值轉(zhuǎn)化成一個新的輸出字符串。

  1. 新建一個VI,在前面板上放置字符串輸入控件“命令字”和“單位”,符串顯示控件“輸出命令字符”,數(shù)值輸入控件“數(shù)值”和數(shù)值顯示控件“字符串長度”。
  2. 切換到程序框圖,在字符串函數(shù)模板中選擇“格式化寫入字符串”,如圖連線:
  3. 雙擊“格式化寫入字符串”函數(shù),彈出如圖所示對話框
  4. 對它進行參數(shù)設定,將分數(shù)的長度改為4,如圖:

  5. 同樣在程序框圖中添加“字符串長度”函數(shù)計算字符串的長度,它用于返回輸出的命令字符串的長度。
  6. 完成連線,如圖:
  7. 運行結(jié)果如圖:

例二:字符串子集和數(shù)值的提取

實際應用中很多情況下,必須把字符串轉(zhuǎn)換成數(shù)值,例如需要將從儀器中得到的數(shù)據(jù)字符串轉(zhuǎn)換成數(shù)值。

該例的目的是從一個輸入的字符串中,提取一個子字符串,另外掃描字符串,將子字符串轉(zhuǎn)換為數(shù)據(jù)。

  1. 新建一個VI,按照如圖所示放置輸入和輸出控件。
  2. 切換到程序框圖,從字符串函數(shù)模板中,選擇“部分字符串”函數(shù),在該例中,它的功能是返回從偏移地址開始的指定長度的子字符串。
  3. 選擇“掃描字符串”函數(shù),它用于掃描字符串,并將有效的數(shù)值(0~9,正,負,e和E)轉(zhuǎn)換成數(shù)值。如果連接了一個格式字符串,它將根據(jù)字符串指定的格式進行轉(zhuǎn)換,否則將進行默認格式的轉(zhuǎn)換,該函數(shù)的初始掃描位置參數(shù)用于設置初始掃描位置,它與“數(shù)字相對偏移量”相連。
  4. 完成連線,如圖:
  5. 運行結(jié)果如圖:

    注意:LabVIEW的偏移地址是從0開始計數(shù)的。

文件I/O

文件輸入輸出是程序設計中的一個重要概念,一般來說,文件是存儲在磁盤傷的數(shù)據(jù)的集合。文件輸入與輸出就是要在磁盤文件中保存和讀取信息數(shù)據(jù),以文件形式存儲起來的數(shù)據(jù)具有“永久性”,數(shù)據(jù)文件不僅可以與LabVIEW語言編寫的其他VI交換數(shù)據(jù),而且可以被其他程序共享。

文件輸入與輸出操作主要包括3個基本的步驟:新建或者打開一個已有的文件,對文件進行讀寫和關(guān)閉文件。

LabVIEW支持的文件格式主要包含以下3種:

  • ASCII碼文本格式文件
  • 二進制格式文件
  • LabVIEW數(shù)據(jù)記錄文件
  1. ASCII碼文本格式文件
  2. 文本文件又稱為ASCII碼文件或字符文件,它的每一個字節(jié)代表一個字符,存放的是這個字符的ASCII碼。文本文件的優(yōu)點是它幾乎在任何應用程序中都是可讀的,這種文件最易于進行整體互換,用戶可以用其他的軟件來訪問數(shù)據(jù),例如字處理軟件Word或者Excel等,在儀器控制系統(tǒng)中的大部分控制指令也是用文本字符串。當然在寫文件之前必須要將所有的數(shù)據(jù)都變成ASCII字符串格式,讀文件之后要將字符串恢復為原數(shù)據(jù)值。

    文本文件的缺點是占用的磁盤空間較大,比如存儲一個浮點數(shù)-864.39571,因為每個字符要占用一個字節(jié),所以需要10個字節(jié)空間。文本文件的存取數(shù)據(jù)過程中存在ASCII碼與機器內(nèi)碼的轉(zhuǎn)換,所以存取數(shù)據(jù)的速度也比較慢。

  3. 二進制格式文件
  4. 二進制文件是把數(shù)據(jù)按其在內(nèi)存中存儲的形式(機器內(nèi)碼)原樣輸出到磁盤上,所以它的存取速度最快,格式也最緊湊。二進制格式占用的磁盤空間比ASCII碼文本文件要小得多,對于上訴的浮點數(shù)-864.39571,如果存儲為單精度型,只占用4個字節(jié),要是存儲為雙精度型,則占用8個字節(jié)。

    用戶在讀寫二進制文件時,必須明確文件使用的時哪一種數(shù)據(jù)類型,各種類型的二進制文件之間是不能通用的。二進制格式文件可以隨機的訪問其中的某一數(shù)據(jù)。而這一點是文本文件無法比擬的,要想在文本文件中訪問某一數(shù)據(jù),則必須把它之前的數(shù)據(jù)全部都讀出來,才可以訪問所需要的數(shù)據(jù)。

  5. 數(shù)據(jù)記錄文件
  6. 數(shù)據(jù)記錄文件也是一種二進制格式的文件,只有LabVIEW才可以對它進行讀取和處理。數(shù)據(jù)記錄文件可以看成是數(shù)據(jù)庫文件格式,它將數(shù)據(jù)存儲為一系列相互獨立的有各自數(shù)據(jù)類型的記錄,就像簇一樣,每一個記錄可以包含不同類型的數(shù)據(jù),這些數(shù)據(jù)類型是由用戶事先指定的。LabVIEW允許用戶自由讀取數(shù)據(jù)記錄文件,在各個記錄中索引出不同數(shù)據(jù)類型的數(shù)據(jù),并且每一個記錄文件都包含由時間標記。

    LabVIEW在程序框圖上的為我們提供了一整套功能強大而且方便靈活的文件輸入/輸出函數(shù),如圖:

    具體每個控件的作用和功能不在這里向大家詳細地介紹,下面將通過一系列地例子來說明各種文件的讀取。

例一:

使用“寫文本文件”函數(shù)寫文本文件

1.新建一個VI,在前面板上放置一個“波形圖表”,將標簽內(nèi)容改為“溫度”,取消顯示曲線圖注和X,Y坐標軸標簽,同時放置一個數(shù)字輸入控件,將標簽改為“采樣點數(shù)”。再放入一個“文件路徑輸入控件”,它位于控件→新式→字符串與路徑→文件路徑輸入控件,如圖:

2.后面板程序如圖:

其中用到了一個LabVIEW自帶的程序Digital Thermometer.vi,在程序框圖中點擊“選擇VI…”,如圖:

系統(tǒng)會自動打開一個對話框,如圖:

在我的計算機里,它位于labview8.2→Activity→Digital Thermometer,如圖:

其中在“格式化寫入字符串”函數(shù)上的“%3.fn”是轉(zhuǎn)換后保留三位小數(shù),字符串間以回車間隔。


上一頁 1 2 下一頁

關(guān)鍵詞: Labview字符串文件I

評論


技術(shù)專區(qū)

關(guān)閉