labview字符串與文件IO(很好的)_第1頁
labview字符串與文件IO(很好的)_第2頁
labview字符串與文件IO(很好的)_第3頁
labview字符串與文件IO(很好的)_第4頁
labview字符串與文件IO(很好的)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、字符串與文件I/O本頁關(guān)鍵詞:labview labview 下載 labview8.2 labview教程 labview論壇labview 8.20 labview 7.0 labview 序列號(hào) labview7.1labview 8.0 字符串與文件I/O字符串字符串是ASCII碼字符的集合,當(dāng)用戶與GPIB和串行設(shè)備的通信,讀寫文本文件以及傳遞文本信息時(shí),字符串都是非常有用的。字符串中的字符有些是可顯示的,有些則是不可顯示的。LabVIEW在功能模板上的字符串子模板中提供了一整套的字符串處理函數(shù),能夠完成各種字符串處理功能。常用的字符串對(duì)象包括字符串輸入控件和字符串顯示控件,它們位于

2、控件新式字符串與路徑字符串輸入控件,字符串顯示控件。如圖:字符串的顯示方式:在前面板上放置一個(gè)字符串輸入控件,右擊鼠標(biāo),彈出如圖所示的菜單:從上圖中可以看出字符串有4種顯示方式下圖是“”分別用這4種方式顯示,如圖:字符串函數(shù)打開程序框圖中的字符串函數(shù),如圖:字符串函數(shù)模板除了包含一般的字符處理函數(shù)以外,還包含各種字符常量,以及字符串與數(shù)字量,路徑的相互轉(zhuǎn)換函數(shù)。其中最后一行包含了各種常量,可以方便的使用。字符串應(yīng)用舉例:例一:組合字符串該例的目的是將一些字符串和數(shù)值轉(zhuǎn)化成一個(gè)新的輸出字符串。1. 新建一個(gè)VI,在前面板上放置字符串輸入控件“命令字”和“單位”,符串顯示控件“輸出命令字符”,數(shù)值

3、輸入控件“數(shù)值”和數(shù)值顯示控件“字符串長度”。2. 切換到程序框圖,在字符串函數(shù)模板中選擇“格式化寫入字符串”,如圖連線:3. 雙擊“格式化寫入字符串”函數(shù),彈出如圖所示對(duì)話框?qū)λM(jìn)行參數(shù)設(shè)定,將分?jǐn)?shù)的長度改為4,如圖:4. 同樣在程序框圖中添加“字符串長度”函數(shù)計(jì)算字符串的長度,它用于返回輸出的命令字符串的長度。5. 完成連線,如圖:運(yùn)行結(jié)果如圖:例二:字符串子集和數(shù)值的提取實(shí)際應(yīng)用中很多情況下,必須把字符串轉(zhuǎn)換成數(shù)值,例如需要將從儀器中得到的數(shù)據(jù)字符串轉(zhuǎn)換成數(shù)值。該例的目的是從一個(gè)輸入的字符串中,提取一個(gè)子字符串,另外掃描字符串,將子字符串轉(zhuǎn)換為數(shù)據(jù)。1. 新建一個(gè)VI,按照如圖所示放置輸

4、入和輸出控件。2. 切換到程序框圖,從字符串函數(shù)模板中,選擇“部分字符串”函數(shù),在該例中,它的功能是返回從偏移地址開始的指定長度的子字符串。3. 選擇“掃描字符串”函數(shù),它用于掃描字符串,并將有效的數(shù)值(09,正,負(fù),e和E)轉(zhuǎn)換成數(shù)值。如果連接了一個(gè)格式字符串,它將根據(jù)字符串指定的格式進(jìn)行轉(zhuǎn)換,否則將進(jìn)行默認(rèn)格式的轉(zhuǎn)換,該函數(shù)的初始掃描位置參數(shù)用于設(shè)置初始掃描位置,它與“數(shù)字相對(duì)偏移量”相連。4. 完成連線,如圖:運(yùn)行結(jié)果如圖:注意:LabVIEW的偏移地址是從0開始計(jì)數(shù)的。文件I/O文件輸入輸出是程序設(shè)計(jì)中的一個(gè)重要概念,一般來說,文件是存儲(chǔ)在磁盤傷的數(shù)據(jù)的集合。文件輸入與輸出就是要在磁盤

5、文件中保存和讀取信息數(shù)據(jù),以文件形式存儲(chǔ)起來的數(shù)據(jù)具有“永久性”,數(shù)據(jù)文件不僅可以與LabVIEW語言編寫的其他VI交換數(shù)據(jù),而且可以被其他程序共享。文件輸入與輸出操作主要包括3個(gè)基本的步驟:新建或者打開一個(gè)已有的文件,對(duì)文件進(jìn)行讀寫和關(guān)閉文件。LabVIEW支持的文件格式主要包含以下3種: ··· ASCII碼文本格式文件 二進(jìn)制格式文件 LabVIEW數(shù)據(jù)記錄文件1. ASCII碼文本格式文件 文本文件又稱為ASCII碼文件或字符文件,它的每一個(gè)字節(jié)代表一個(gè)字符,存放的是這個(gè)字符的ASCII碼。文本文件的優(yōu)點(diǎn)是它幾乎在任何應(yīng)用程序中都是可讀的,這種文件最易于進(jìn)

6、行整體互換,用戶可以用其他的軟件來訪問數(shù)據(jù),例如字處理軟件Word或者Excel等,在儀器控制系統(tǒng)中的大部分控制指令也是用文本字符串。當(dāng)然在寫文件之前必須要將所有的數(shù)據(jù)都變成ASCII字符串格式,讀文件之后要將字符串恢復(fù)為原數(shù)據(jù)值。文本文件的缺點(diǎn)是占用的磁盤空間較大,比如存儲(chǔ)一個(gè)浮點(diǎn)數(shù)-864.39571,因?yàn)槊總€(gè)字符要占用一個(gè)字節(jié),所以需要10個(gè)字節(jié)空間。文本文件的存取數(shù)據(jù)過程中存在ASCII碼與機(jī)器內(nèi)碼的轉(zhuǎn)換,所以存取數(shù)據(jù)的速度也比較慢。2. 二進(jìn)制格式文件二進(jìn)制文件是把數(shù)據(jù)按其在內(nèi)存中存儲(chǔ)的形式(機(jī)器內(nèi)碼)原樣輸出到磁盤上,所以它的存取速度最快,格式也最緊湊。二進(jìn)制格式占用的磁盤空間比A

7、SCII碼文本文件要小得多,對(duì)于上訴的浮點(diǎn)數(shù)-864.39571,如果存儲(chǔ)為單精度型,只占用4個(gè)字節(jié),要是存儲(chǔ)為雙精度型,則占用8個(gè)字節(jié)。用戶在讀寫二進(jìn)制文件時(shí),必須明確文件使用的時(shí)哪一種數(shù)據(jù)類型,各種類型的二進(jìn)制文件之間是不能通用的。二進(jìn)制格式文件可以隨機(jī)的訪問其中的某一數(shù)據(jù)。而這一點(diǎn)是文本文件無法比擬的,要想在文本文件中訪問某一數(shù)據(jù),則必須把它之前的數(shù)據(jù)全部都讀出來,才可以訪問所需要的數(shù)據(jù)。3. 數(shù)據(jù)記錄文件 數(shù)據(jù)記錄文件也是一種二進(jìn)制格式的文件,只有LabVIEW才可以對(duì)它進(jìn)行讀取和處理。數(shù)據(jù)記錄文件可以看成是數(shù)據(jù)庫文件格式,它將數(shù)據(jù)存儲(chǔ)為一系列相互獨(dú)立的有各自數(shù)據(jù)類型的記錄,就像簇一樣

8、,每一個(gè)記錄可以包含不同類型的數(shù)據(jù),這些數(shù)據(jù)類型是由用戶事先指定的。LabVIEW允許用戶自由讀取數(shù)據(jù)記錄文件,在各個(gè)記錄中索引出不同數(shù)據(jù)類型的數(shù)據(jù),并且每一個(gè)記錄文件都包含由時(shí)間標(biāo)記。LabVIEW在程序框圖上的為我們提供了一整套功能強(qiáng)大而且方便靈活的文件輸入/輸出函數(shù),如圖:具體每個(gè)控件的作用和功能不在這里向大家詳細(xì)地介紹,下面將通過一系列地例子來說明各種文件的讀取。例一:使用“寫文本文件”函數(shù)寫文本文件 1新建一個(gè)VI,在前面板上放置一個(gè)“波形圖表”,將標(biāo)簽內(nèi)容改為“溫度”,取消顯示曲線圖注和X,Y坐標(biāo)軸標(biāo)簽,同時(shí)放置一個(gè)數(shù)字輸入控件,將標(biāo)簽改為“采樣點(diǎn)數(shù)”。再放入一個(gè)“文件路徑輸入控件

9、”,它位于控件新式字符串與路徑文件路徑輸入控件,如圖:2后面板程序如圖:其中用到了一個(gè)LabVIEW自帶的程序Digital Thermometer.vi,在程序框圖中點(diǎn)擊“選擇VI”,如圖:系統(tǒng)會(huì)自動(dòng)打開一個(gè)對(duì)話框,如圖:在我的計(jì)算機(jī)里,它位于labview8.2ActivityDigital Thermometer,如圖:其中在“格式化寫入字符串”函數(shù)上的“%3.fn”是轉(zhuǎn)換后保留三位小數(shù),字符串間以回車間隔?;氐角懊姘澹c(diǎn)擊“路徑”右邊的小圖標(biāo):打開一個(gè)對(duì)話框,選擇文件的存儲(chǔ)路徑,如圖:選擇完后,程序即可運(yùn)行,運(yùn)行結(jié)果如圖:打開記事本,即可看到寫入的文件,如圖:此程序中利用了For循環(huán)自

10、動(dòng)索引的功能,一次產(chǎn)生了10個(gè)數(shù)據(jù),然后逐一寫入文本。正因?yàn)榇?,“寫入文本文件”是高層文件I/O操作函數(shù),高層文件I/O操作函數(shù)每調(diào)用一次就會(huì)實(shí)現(xiàn)創(chuàng)建或打開文件,讀寫文件,關(guān)閉文件的整個(gè)過程。如果需要向文件中連續(xù)寫入數(shù)據(jù),這樣的效率是非常低的。如果想要提高效率,可以采用底層文件I/O操作函數(shù)來實(shí)現(xiàn)寫文本文件。例二:使用底層文件I/O操作函數(shù)向文本文件寫入數(shù)據(jù)。圖中框起來的便是底層文件I/O函數(shù)前面板的構(gòu)建和例一類似,下面是程序框圖:從途中可以看出,程序進(jìn)行循環(huán)后,文件則被打開,這樣就可以一直向文件中輸入數(shù)據(jù),直到循環(huán)結(jié)束,才關(guān)閉文件,它大大提高了寫文件的效率。運(yùn)行結(jié)果如圖:從上圖可以看出,每兩

11、個(gè)數(shù)字之間正好間隔一個(gè)Tab定界符。例三:寫電子表格文件 “寫入電子表格文件”函數(shù)的應(yīng)用與“寫入文本文件”函數(shù)的應(yīng)用十分相似。它能直接寫入一維或是二維的數(shù)據(jù)。程序框圖如圖:圖中Generate Waveform.vi也使LabVIEW自帶的一個(gè)VI,它與前面所講的Digital Thermometer.vi在同一個(gè)文件夾里,它是用于模擬產(chǎn)生抽樣信號(hào)的。該函數(shù)默認(rèn)的是將數(shù)據(jù)在表格中按行排列,那么一個(gè)二維數(shù)組的記錄則只有兩行,若在該接口中給其賦值“真”,則數(shù)據(jù)會(huì)按列排列。運(yùn)行結(jié)果如圖:打開保存的電子表格文件,即可看到數(shù)據(jù)例四:讀文本文件該例采用在例一中保存的文件,程序框圖如圖:說明:其中用到了一個(gè)LabVIEW自帶的子VI:Extract Numbers,它位于LabVIEW8.2examplesgeneralstrings,如圖:單擊確定后,系統(tǒng)會(huì)彈出下面的對(duì)話框:選擇Extract Numbers.vi,它的作用是提取由逗號(hào),分行符號(hào),非數(shù)值字符等分隔開的數(shù)據(jù)所組成的ASCII字符串,并將它們轉(zhuǎn)換成數(shù)值數(shù)組,用于將讀取的字符串轉(zhuǎn)換為雙精度數(shù)據(jù)類型的一維數(shù)組。運(yùn)行結(jié)果如圖:例五:另一種讀取文本文件的方法上面的例子是用一個(gè)函數(shù)完成了,文件的打開,讀取,關(guān)閉。和寫入文本文件時(shí)一樣,我們也可以通過三個(gè)函數(shù)來實(shí)現(xiàn)以上的三個(gè)步驟,程序框圖如

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論