新聞中心

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

        Labview字符串與文件I/O

        作者: 時間:2017-01-06 來源:網絡 收藏
        字符串

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

        本文引用地址:http://www.104case.com/article/201701/337002.htm

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

        字符串的顯示方式:

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

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

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

        字符串函數

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

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

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

        字符串應用舉例:

        例一:組合字符串

        該例的目的是將一些字符串和數值轉化成一個新的輸出字符串。

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

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

        例二:字符串子集和數值的提取

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

        該例的目的是從一個輸入的字符串中,提取一個子字符串,另外掃描字符串,將子字符串轉換為數據。

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

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

        文件I/O

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

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

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

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

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

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

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

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

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

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

        例一:

        使用“寫文本文件”函數寫文本文件

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

        2.后面板程序如圖:

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

        系統會自動打開一個對話框,如圖:

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

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


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 保靖县| 霍城县| 巫溪县| 定远县| 上杭县| 肃宁县| 彭州市| 循化| 通江县| 蒙城县| 丹江口市| 神木县| 潞城市| 南京市| 新野县| 涟源市| 兴安县| 镇坪县| 普定县| 大足县| 正阳县| 桦南县| 平泉县| 临沧市| 通城县| 枣庄市| 紫云| 罗平县| 钟山县| 利津县| 广河县| 达孜县| 洪泽县| 青河县| 都昌县| 上思县| 梁河县| 北辰区| 孝义市| 姜堰市| 樟树市|