labview 第5章 字符串和文件_第1頁(yè)
labview 第5章 字符串和文件_第2頁(yè)
labview 第5章 字符串和文件_第3頁(yè)
labview 第5章 字符串和文件_第4頁(yè)
labview 第5章 字符串和文件_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第五章字符串和文件I/O字符串字符串是ASCII字符的集合。如同其他語(yǔ)言一樣,LabVIEW也提供了各種處理字符串的功能,如果想獲得字符串的例子,可查看ExamplesGeneralstrings.llb。下面扼要介紹一些內(nèi)容。l 創(chuàng)建字符串控制對(duì)象和顯示對(duì)象可以在Controls»String & Table 中看到右邊所顯示字符串控制對(duì)象和顯示對(duì)象。還可以使用操作工具或者標(biāo)簽工具輸入或者改變字符串控制對(duì)象中的文本。用移位工具拖曳字符串控制對(duì)象和顯示對(duì)象的邊角可以增大它們的面積。練習(xí) 組合字符串目的:使用一些字符串功能函數(shù)將一個(gè)數(shù)值轉(zhuǎn)換成字符串,并把該字符串和其他一些字符串

2、連接起來(lái)組成一個(gè)新的輸出字符串。前面板打開(kāi)一個(gè)新的前面板,按照下圖向其中添加對(duì)象。其中的兩個(gè)字符串控制對(duì)象和數(shù)值控制對(duì)象可以合并成一個(gè)輸出字符串并顯示在字符串顯示器中。數(shù)值顯示器顯示出字符串的長(zhǎng)度。本練習(xí)中輸出字符串是一個(gè)GPIB(IEEE 488)命令字符串,它可用來(lái)與和串口儀器(RS-232 或者 RS-422)進(jìn)行通信。流程圖l Format Into String函數(shù)(Functions»String)在本練習(xí)中,它用于對(duì)數(shù)值和字符串進(jìn)行格式化,使它們成為一個(gè)輸出字符串。用變形工具可以添加三個(gè)加和輸入。l String Length函數(shù)(Functions»Stri

3、ng)在本練習(xí)中,它用于返回一個(gè)字符串的字節(jié)數(shù)l 執(zhí)行該VI。注意,F(xiàn)ormat Into String 功能函數(shù)將兩個(gè)字符串控制對(duì)象和數(shù)值控制對(duì)象組合成一個(gè)輸出字符串。l 把該VI保存為 Build String.vi,在下一個(gè)練習(xí)中還將用到這個(gè)VI。l 字符串格式的設(shè)定:選中Format Into String函數(shù),單擊右鍵,在快速菜單中選擇Edit Format String,可分別對(duì)個(gè)輸入的各部分格式做設(shè)定。練習(xí) 結(jié)束。練習(xí) 字符串子集和數(shù)值的提取目的:創(chuàng)建一個(gè)字符串的子集,其中含有某個(gè)數(shù)值的字符串顯示,再將它轉(zhuǎn)換成數(shù)值。打開(kāi) ExamplesGeneralstrings.llb中的P

4、arse String.vi。用默認(rèn)輸入值執(zhí)行該VI。注意,DC的字符串子集被用于輸入字符串。還要注意,字符串的數(shù)值部分被提取出來(lái),并轉(zhuǎn)換為數(shù)值。您可以嘗試使用不同的控制數(shù)值(記住數(shù)組式的字符串是從0開(kāi)始進(jìn)行編號(hào)),或者您可以返回到流程圖,查看怎樣從輸入字符串中提取出其中的元素。String Subset函數(shù)(Functions»String)在本練習(xí)中,它用于返回偏移地址開(kāi)始的子字符串以及字節(jié)數(shù)。第一個(gè)偏移地址是0。很多情況下,必須把字符串轉(zhuǎn)換成數(shù)值,例如需要將從儀器中得到的數(shù)據(jù)字符串轉(zhuǎn)換成數(shù)值。Scan From String函數(shù)(Functions»String)在這

5、個(gè)例子中,它用于掃描字符串,并將有效的數(shù)值(0到9,正負(fù),e,E和分號(hào))轉(zhuǎn)換成數(shù)值。如果連接了一個(gè)格式字符串,它將根據(jù)字符串指定的格式進(jìn)行轉(zhuǎn)換,否則將進(jìn)行默認(rèn)格式的轉(zhuǎn)換。該函數(shù)從偏移地址的string處開(kāi)始掃描。第一個(gè)字符的偏移地址是0。這個(gè)函數(shù)在已知頭長(zhǎng)度(本例中是VOLTS DC)時(shí)或者字符串只含有有效字符時(shí)很有用。選擇File»Close,關(guān)閉該VI。注意不要保存它。練習(xí) 結(jié)束。文件的輸入/輸出(I/O)文件I/O功能函數(shù)是一組功能強(qiáng)大、伸縮性強(qiáng)的文件處理工具。它們不僅可以讀寫數(shù)據(jù),還可以移動(dòng)、重命名文件與目錄。創(chuàng)建電子表格格式的、由可讀的ASCII文本組成的文件,以及為了提高

6、讀寫速度和壓縮率采用二進(jìn)制的格式寫入數(shù)據(jù)??梢圆捎孟旅嫒N文件格式存儲(chǔ)或者獲得數(shù)據(jù):l ASCII字節(jié)流如果希望讓其他的軟件(譬如字處理程序或者電子表格程序)也可以訪問(wèn)數(shù)據(jù),就需要將數(shù)據(jù)存儲(chǔ)為ASCII格式。為此,您需要把所有數(shù)據(jù)都轉(zhuǎn)換為ASCII字符串。l 數(shù)據(jù)記錄文件這種文件采用的是只有G語(yǔ)言可以訪問(wèn)的二進(jìn)制格式。數(shù)據(jù)記錄文件類似于數(shù)據(jù)庫(kù)文件,因?yàn)樗梢园巡煌臄?shù)據(jù)類型存儲(chǔ)到同一個(gè)文件記錄中。l 二進(jìn)制字節(jié)流這種文件的格式是最緊湊、最快速地存儲(chǔ)文件的格式。您必須把數(shù)據(jù)轉(zhuǎn)換成二進(jìn)制字符串的格式,還必須清楚地知道在對(duì)文件讀寫數(shù)據(jù)時(shí)采用的是哪種數(shù)據(jù)格式。因?yàn)锳SCII字節(jié)流格式是最常用的數(shù)據(jù)文件

7、格式,所以本節(jié)著重介紹這種格式。如果您想獲得關(guān)于文件I/O的例子,請(qǐng)參考 ExamplesFile。文件 I/O 功能函數(shù)大多數(shù)的文件I/O操作都包括三個(gè)基本的步驟:打開(kāi)一個(gè)已有的文件或者新建一個(gè)文件;對(duì)文件進(jìn)行讀寫;關(guān)閉文件。LabVIEW在Functions» File I/O中提供了很多有用的工具 VI。本節(jié)主要介紹9個(gè)高級(jí)工具VI,這些工具VI可以把錯(cuò)誤檢查和錯(cuò)誤處理等功能與文件I/O功能函數(shù)結(jié)合起來(lái)。以下個(gè)功能從左到右對(duì)應(yīng)于上面?zhèn)€圖標(biāo)。l Write To Spreadsheet File VI用于將由單精度數(shù)值組成的一維或者二維數(shù)組轉(zhuǎn)換成文本字符串,再將它寫入一個(gè)新建文件

8、或者已有文件。該VI先打開(kāi)或者新建文件,之后再關(guān)閉文件。它可以用于創(chuàng)建能夠被大多數(shù)電子表格軟件讀取的文本文件。l Read From Spreadsheet File VI用于從某個(gè)文件的特定位置開(kāi)始讀取指定個(gè)數(shù)的行或者列內(nèi)容,再將數(shù)據(jù)轉(zhuǎn)換成二維、單精度數(shù)組。該VI先打開(kāi)文件,之后再關(guān)閉文件。它可以用于讀取用文本格式存儲(chǔ)的電子表格文件。l Write Characters To File VI用于將一個(gè)字符串寫入一個(gè)新建文件或者已有文件。該VI打開(kāi)這個(gè)文件、寫入數(shù)據(jù),再關(guān)閉文件。l Read Characters From File VI用于從某個(gè)文件的特定位置開(kāi)始讀取指定個(gè)數(shù)的字符。該VI先

9、打開(kāi)文件,之后再關(guān)閉文件。l Read Lines From File VI用于從某個(gè)文件的特定位置開(kāi)始讀取指定個(gè)數(shù)的行內(nèi)容。該VI先打開(kāi)文件,之后再關(guān)閉文件。如果想查看其他的文件I/O 功能函數(shù),請(qǐng)選擇Function»File I/O» Binary File VIs 或者Function»File I/O»Advanced File Functions。將數(shù)據(jù)寫入電子表格文件將數(shù)據(jù)存儲(chǔ)到文件的最常見(jiàn)應(yīng)用之一是設(shè)置文本文件的格式以便在電子表格文件中打開(kāi)它。大多數(shù)電子表格文件用Tab鍵分割各列,而用EOL(段尾)分隔各行,如下圖所示。用一個(gè)電子表格程序

10、(如 Excel)打開(kāi)該文件可以看到下面這個(gè)表格。練習(xí) 將數(shù)據(jù)寫入電子表格文件目的:修改一個(gè)已有的 VI以使用文件 I/O 功能函數(shù),以便可以將數(shù)據(jù)以 ASCII 格式保存到一個(gè)新的文件。然后就可以用一個(gè)電子表格程序打開(kāi)該文件。前面板打開(kāi)前面練習(xí)中創(chuàng)建的Graph Waveform Arrays.vi。當(dāng)調(diào)用這個(gè)VI時(shí),該VI將產(chǎn)生兩個(gè)數(shù)據(jù)數(shù)組,并將它們繪制在一個(gè)圖區(qū)中。您需要對(duì)該VI進(jìn)行修改,從而把兩個(gè)數(shù)組寫入一個(gè)文件,格式是每列含有一個(gè)數(shù)組。流程圖打開(kāi)Graph Waveform Arrays.vi 的流程圖,按照下圖在流程圖的右下角添加功能函數(shù)。l Write To Spreadshee

11、t File VI (Functions»File I/O)用于將二維數(shù)組轉(zhuǎn)換成電子表格字符串,再將它寫入一個(gè)文件。如果沒(méi)有指定路徑名稱,將會(huì)彈出一個(gè)文件對(duì)話框,提示輸入文件名。該VI將把一維或者二維數(shù)組寫入文件。這個(gè)例子中,因?yàn)橛玫氖嵌S數(shù)組,所以無(wú)需連接一維輸入端子。l Boolean常數(shù) (Functions»Boolean)用于控制是否在寫入數(shù)據(jù)之前轉(zhuǎn)換成二維數(shù)組。在這個(gè)例子中需要對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換。因?yàn)殡娮颖砀裎募拿苛卸己幸粋€(gè)數(shù)據(jù)數(shù)組,所以必須先轉(zhuǎn)換成二維數(shù)組。l 返回前面板,執(zhí)行該VI。數(shù)據(jù)數(shù)組產(chǎn)生以后,會(huì)出現(xiàn)一個(gè)文件對(duì)話框提示輸入新建文件的文件名。輸入文件名,

12、并單擊 OK。l 可以嘗試選擇轉(zhuǎn)換與不轉(zhuǎn)換兩種情況運(yùn)行程序,查看結(jié)果差別。l 保存該VI為Waveform Arrays to File.vi,并關(guān)閉該VI?,F(xiàn)在可以用電子表格軟件或者文本編輯器打開(kāi)或者編輯剛才創(chuàng)建的文件??梢钥吹絻闪斜砀?,每列含有100個(gè)元素。在這個(gè)例子中,直到所有數(shù)組都被采集以后,數(shù)據(jù)才可以被轉(zhuǎn)換或者寫入文件。如果需要更大的數(shù)據(jù)緩存和希望在數(shù)據(jù)產(chǎn)生后把它們寫入到硬盤,就需要使用另外一個(gè)文件I/O VI。練習(xí) 結(jié)束。練習(xí) 向文件添加數(shù)據(jù)目的:創(chuàng)建一個(gè) VI,可以把溫度數(shù)據(jù)以 ASCII 格式添加到某個(gè)文件中。該 VI 使用 For 循環(huán)產(chǎn)生溫度數(shù)據(jù),并將它們存儲(chǔ)到一個(gè)文件中。

13、在每個(gè)循環(huán)期間,您都要把數(shù)據(jù)轉(zhuǎn)換成字符串,添加一個(gè)逗號(hào)作為分隔符,并將字符串添加到文件中。前面板打開(kāi)一個(gè)新的前面板,并按照下圖放置對(duì)象。前面板中包括一個(gè)數(shù)字式顯示器和一個(gè)波形圖?!皵?shù)據(jù)點(diǎn)個(gè)數(shù)”控制對(duì)象指定了需要采集和寫入文件的溫度數(shù)據(jù)的數(shù)量。波形圖表則用于顯示溫度曲線。將波形圖表的Y軸范圍設(shè)置為70.0到90.0,X軸范圍設(shè)置為0到20。流程圖l 打開(kāi)流程圖,添加For循環(huán)并增大它的面積。該VI將產(chǎn)生由“數(shù)據(jù)點(diǎn)個(gè)數(shù)”控制對(duì)象指定的個(gè)數(shù)的溫度數(shù)據(jù)。l 在循環(huán)中加一個(gè)移位寄存器,方法是用鼠標(biāo)右鍵單擊循環(huán)邊界,在快捷菜單中選擇移位寄存器。這個(gè)移位寄存器中將含有文件的路徑名。l 完成對(duì)象的連線。l E

14、mpty Path 常數(shù)(Functions»File IO»File Constants)用于初始化移位寄存器,以保證需要對(duì)文件寫入數(shù)據(jù)時(shí)路徑都是空的。會(huì)出現(xiàn)一個(gè)文件對(duì)話框提示輸入文件名。l Digital Thermometer VI(Functions»Select a VI)返回一個(gè)模擬溫度測(cè)量值(仿真)。l Format Into String函數(shù)(Functions»String)將溫度數(shù)據(jù)轉(zhuǎn)換成字符串,并且在數(shù)據(jù)后面增加一個(gè)逗號(hào)。l Write Characters To File VI((Functions»File I/O)用

15、于向文件寫入字符串。l Boolean常數(shù)(Functions»Boolean)用于將Write Characters To File VI的append to file?輸入為TRUE, 這樣在循環(huán)執(zhí)行時(shí)新的溫度數(shù)據(jù)就會(huì)加入到選中的文件中。用操作工具單擊這個(gè)常數(shù)可以將它設(shè)置為TRUE。l 返回前面板,把“數(shù)據(jù)點(diǎn)個(gè)數(shù)”設(shè)置為20,執(zhí)行該VI。這時(shí)會(huì)出現(xiàn)一個(gè)文件對(duì)話框,提示輸入文件名。輸入文件名以后,VI就會(huì)在每個(gè)溫度數(shù)據(jù)產(chǎn)生時(shí),將它寫入到該文件中。l 把該VI保存為L(zhǎng)abVIEWActivity目錄下的Write Temperature to File.vi。l 使用任意一個(gè)字處理軟

16、件,例如Write for Windows,Teach Text for Macintosh, 或者 UNIX平臺(tái)下的某個(gè)文本編輯器,打開(kāi)該數(shù)據(jù)文件查看其內(nèi)容。您可以看到文件的內(nèi)容是20個(gè)用逗號(hào)分隔開(kāi)的數(shù)值(準(zhǔn)確到小數(shù)點(diǎn)后三位)。練習(xí) 結(jié)束。練習(xí) 從文件讀取數(shù)據(jù)目的:創(chuàng)建一個(gè)VI,可以從上一個(gè)練習(xí)中創(chuàng)建的例子中讀取數(shù)據(jù),并把這些數(shù)據(jù)顯示在一個(gè)波形圖形中。必須按照數(shù)據(jù)保存的格式來(lái)讀取它,因?yàn)樵瓉?lái)是用字符串?dāng)?shù)據(jù)類型,把數(shù)據(jù)保存為 ASCII 格式,那么就必須用一個(gè)文件 I/O 函數(shù)把數(shù)據(jù)作為字符串讀出。前面板打開(kāi)一個(gè)新的前面板,并按照下圖放置對(duì)象。前面板中包括一個(gè)字符串顯示對(duì)象和一個(gè)波形圖。“從文

17、件讀字符串“顯示對(duì)象將從上個(gè)練習(xí)創(chuàng)建的文件中讀出用逗號(hào)分隔開(kāi)的溫度數(shù)據(jù)。波形圖則用于顯示溫度曲線。流程圖 l Read Characters From File VI(Functions»File I/O)用于從文件中讀取數(shù)據(jù),以及輸入字符串中的信息。如果沒(méi)有指定路徑名稱,將出現(xiàn)一個(gè)文件對(duì)話框提示您輸入文件名。在這個(gè)例子中,無(wú)需判斷需要讀取的字符的個(gè)數(shù),因?yàn)槲募淖址麛?shù)比默認(rèn)的512要少。要從文件中讀取數(shù)據(jù),必須知道數(shù)據(jù)的存儲(chǔ)方式。如果知道了文件的長(zhǎng)度,就可以使用Read Characters From File VI讀取指定個(gè)數(shù)的字符。l Extract Numbers VI (E

18、xamplesGeneralstrings.llb)用于提取由逗號(hào)、分行符號(hào)、非數(shù)值字符等分隔開(kāi)的數(shù)據(jù)組成的ASCII字符串,并將它們轉(zhuǎn)換成數(shù)值數(shù)組。l 返回前面板,執(zhí)行該VI。將出現(xiàn)一個(gè)文件對(duì)話框,在其中選擇剛才保存的數(shù)據(jù)文件,您可以看到圖形中顯示的數(shù)據(jù)與Write Temperature to File VI 例子中顯示的一樣。l 保存該VI為Temperature from File.vi,并關(guān)閉它。練習(xí) 結(jié)束。數(shù)據(jù)記錄文件(datalog file)上面提供的例子說(shuō)明了處理ASCII字符格式存儲(chǔ)的數(shù)據(jù)的文件的簡(jiǎn)單方法。在需要?jiǎng)?chuàng)建供其他軟件(如電子表格軟件)訪問(wèn)的文件時(shí)這種方法很有用。另外一種是稱為數(shù)據(jù)記錄文件(datalog file)的數(shù)據(jù)格式。它與數(shù)據(jù)庫(kù)文件有類似之處,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論