字符串及文件IO_第1頁
字符串及文件IO_第2頁
字符串及文件IO_第3頁
字符串及文件IO_第4頁
字符串及文件IO_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、字符串和文件 I/O本講內(nèi)容1. 字符串2. 文件I/O命令串口/GPIB接口執(zhí)行結(jié)果1. 字符串字符串是ASCII字符(和其他字符)的集合,用于文本的屏幕顯示,儀器控制時(shí)的命令與結(jié)果傳送和文本文件操作。1. 字符串 字符串相關(guān)控件控件選板,新式-字符串與路徑子選板和列表與表格子選板 字符串常量函數(shù)選板,編程-字符串輸入任意字符串其他預(yù)定義字符串常量定義多個(gè)“項(xiàng)-值”對(duì)輸入和輸出控件底色不同1. 字符串1. 字符串輸入控件和輸出顯示控件運(yùn)行程序2. 組合框控件組合框輸入控件,未定義任何項(xiàng)組合框出現(xiàn)項(xiàng)列表輸出所選項(xiàng)對(duì)應(yīng)值(字符串)1. 字符串3. 表格和Express表格表格是字符串組成的2維數(shù)

2、組添加Express表格時(shí)自動(dòng)添加了對(duì)“創(chuàng)建表格”Express VI的調(diào)用延時(shí)1秒行首“列首字符串”屬性“行首字符串”屬性采用屬性節(jié)點(diǎn)動(dòng)態(tài)指定行首和列首列首在Express VI的對(duì)話框中設(shè)置,“包含時(shí)間數(shù)據(jù)”行首和列首通過快捷菜單的顯示項(xiàng)子菜單設(shè)置1. 字符串4. 樹形控件按層次組織數(shù)據(jù) 點(diǎn)擊輸入樹形控件項(xiàng)將鼠標(biāo)指針?biāo)陧?xiàng)(和子項(xiàng))降低一個(gè)層次 在某一項(xiàng)上彈出快捷菜單 編輯每一項(xiàng)的標(biāo)識(shí)符(Tag)將鼠標(biāo)指針?biāo)陧?xiàng)(和子項(xiàng))提高一個(gè)層次 樹形控件輸出所選項(xiàng)的標(biāo)識(shí)符1. 字符串字符串的顯示方式字符串輸入控件、輸出顯示控件,通過快捷菜單配置為如下顯示方式之一:a) 正常顯示(Normal Dis

3、play)- 顯示可打印字符;b) 代碼顯示( Codes Display)- 采用反斜杠代碼顯示正常方式下不可顯示的字符如空格,制表符,等等;多用于程序調(diào)試、向儀器設(shè)備傳輸數(shù)據(jù);c) 密碼顯示(Password Display)- 以*號(hào)顯示所有字符,包括空白;d) 十六進(jìn)制顯示(Hex Display)- 采用十六進(jìn)制顯示所有字符,用于程序調(diào)試。代碼LabVIEW中含義代碼LabVIEW中含義b退格符t制表符f進(jìn)格符s空格符n換行符反斜線:“”r回車符%百分比符號(hào)1. 字符串常用代碼字符1. 字符串典型字符串操作函數(shù)1. 字符串長度(String Length)功能:返回字符串中的字符/字

4、節(jié)個(gè)數(shù);2. 連接字符串(Concatenate Strings)功能:按順序連接所有輸入字符串成為一個(gè)新字符串;輸入可以為1維字符串?dāng)?shù)組;1個(gè)漢字占2個(gè)字節(jié)(byte)1. 字符串3. 截取字符串(String Subset)功能:從輸入字符串的“偏移量”位置開始,取出所要長度的子字符串;4. 轉(zhuǎn)換為大寫字母(To Upper Case)和轉(zhuǎn)換為小寫字母( To Lower Case )字符串中字符的索引從0開始!未接“長度”參數(shù)表示到串尾注意中文的處理1. 字符串5. 替換子字符串(Replace Substring)功能:刪除“偏移量”開始的“長度”個(gè)字符的子字符串,然后插入“子字符串”

5、;即在指定位置插入(“長度”為0)、刪除(“子字符串”為空)或替換子字符串;6. 搜索替換字符串(Search and Replace String)功能:查找并替換指定字符串;快捷菜單可打開“正則表達(dá)式”選項(xiàng)1. 字符串正則表達(dá)式(Regular Expression):使用特殊語法的表達(dá)式,其中包含查找復(fù)雜字符串所依照的規(guī)則或模式;類似文件名搜索時(shí)使用的通配符*和?,但更復(fù)雜和強(qiáng)大。尋找和替換所有匹配打開了“正則表達(dá)式”選項(xiàng)a-zA-Z*at “at”之前有0或多個(gè)字母所有匹配都替換為“NULL”特殊字符解釋.匹配任何單個(gè)字符,換行除外。例如:.t匹配at、bt、2t、_t,等等*標(biāo)記可以

6、出現(xiàn)0次或多次的模式。例如be*將e標(biāo)記為可出現(xiàn)0次或多次的模式,因此be*匹配believe中的be、beep中的bee和bat中的b+標(biāo)記出現(xiàn)1次或多次的模式。例如 be+可以匹配believe中的be、 beep中的bee,但不能匹配bat?標(biāo)記出現(xiàn)0次或1次的模式。be?可以匹配believe中的be、 bee中的be、 beep中的be,以及bat中的b標(biāo)記模式的一部分,可以出現(xiàn)任意次數(shù)。例如be2 匹配至少跟隨了兩個(gè)e的b字符,be0,3匹配至多跟隨了三個(gè)e的b字符,be2,3匹配至少跟隨了兩個(gè)e,至多跟隨了三個(gè)e的b字符建立字符類,可以匹配某個(gè)字符集中的任何一個(gè)字符。例如abc1

7、23匹配字符a、b、c、1、 2或3中的任何一個(gè)-指定字符范圍。例如 a-z匹配任何小寫字母,a-zA-Z0-9匹配任何小寫、大寫或數(shù)字字符??梢允褂米址惼ヅ淙魏尾辉谀骋蛔址械淖址?,將號(hào)添加到字符類的開始。例如0-9匹配任何非數(shù)字字符,a-zA-Z0-9匹配任何非字母非數(shù)字字符()表示部分匹配,使用豎線|分割可能的匹配,例如(cat|dog) catcher匹配cat catcher或dog catcher。也可使用多個(gè)部分匹配,例如(a|the) (cat|dog)匹配a cat、a dog、thecat或the dog|表明多個(gè)可能的匹配,例如cat|dog匹配catcher的cat

8、或者big dog中的dog僅匹配字符串的開始,例如dog匹配dog catcher中的dog,但不匹配the dog中的dog僅匹配字符串的結(jié)尾。表示不進(jìn)行正則表達(dá)式解析的特殊字符。以下反斜杠字符具有特殊含義: b 代表單詞(word)邊界。單詞邊界不是屬于某個(gè)單詞的字符,但與單詞字符相鄰。 單詞字符指字母數(shù)字字符或者下劃線_。例如bhat匹配hatchet中的hat,但不匹配that,hatb匹配that中的hat,但是不匹配hatchet。bhatb匹配hat中的hat,但不匹配that或hatchet c 匹配任何控制或非打印字符 w 匹配任何單詞字符,等效于a-zA-Z0-9_ W

9、匹配任何非單詞字符,等效于a-zA-Z0-9_ d 匹配任何數(shù)字字符,等效于0-9 D 匹配任何非數(shù)字字符,等效于0-9 s 匹配任何空白字符,包括空格,換行(newline) ,制表符,回車,等等 S -匹配任何非空白字符 n -匹配換行字符 t - 匹配制表符 r - 匹配回車符 031 - 匹配8進(jìn)制字符(8進(jìn)制的31) x3F - 匹配16進(jìn)制字符(16進(jìn)制的3F)$1. 字符串7. 匹配正則表達(dá)式(Match Regular Expression)功能:從“輸入字符串”的“偏移量”位置開始查找“正則表達(dá)式”,找到后,按其所在位置將“輸入字符串”分為三段;從一段文本中提取Email地址

10、(此處給出兩種不同的正則表達(dá)式方案)1. 字符串8. 格式化日期/時(shí)間字符串(Format Date/Time String)功能:以指定的格式顯示時(shí)間字符串;9. 掃描字符串(Scan From String)功能:掃描輸入字符串,提取表示數(shù)據(jù)的子串并按照給定格式進(jìn)行轉(zhuǎn)換;提取和轉(zhuǎn)化浮點(diǎn)數(shù)可能為電壓表返回的電壓查詢結(jié)果(伏特,直流,5.36)1. 字符串10. 格式化寫入字符串(Format Into String)功能:將多種數(shù)據(jù)轉(zhuǎn)化為字符串;以上兩個(gè)函數(shù),彈出快捷菜單,選擇編輯格式字符串選項(xiàng);通過對(duì)話框配置格式字符串,降低難度。2. 文件I/O 計(jì)算機(jī)文件供計(jì)算機(jī)程序所使用,是存儲(chǔ)信息的

11、容器,且經(jīng)常基于持久存儲(chǔ)機(jī)制如磁盤驅(qū)動(dòng)器;文件的持久存儲(chǔ)指的是當(dāng)前運(yùn)行的程序結(jié)束后,文件仍可被其他程序所使用; 操作系統(tǒng)中,文件組織為字節(jié)序列; 文本文件(text file)包含按行組織的由字符組成的可讀文本,且在最后一行后包含文件結(jié)束符(end-of-file);文本文件采用文本編輯程序(如記事本)打開文件文件IO文件IO 對(duì)于一個(gè)完整的測試系統(tǒng)或數(shù)據(jù)采集系統(tǒng),我們經(jīng)常需要將硬件的配置信息硬件的配置信息寫入配置文件或者將采集到的數(shù)據(jù)采集到的數(shù)據(jù)以一定格式存儲(chǔ)在文件中保存數(shù)據(jù)。因此LabVIEW提供了強(qiáng)大的文件I/O函數(shù)用以滿足不同的文件操作需求。 選擇合適的文件類型選擇合適的文件類型 La

12、bVIEW支持的文件類型支持的文件類型 文本文件(文本文件(Text Files) 表單文件表單文件(Spreadsheet Files) 二進(jìn)制文件(二進(jìn)制文件(Binary Files) 數(shù)據(jù)記錄文件(數(shù)據(jù)記錄文件(Datalog Files) XML文件文件 配置文件(配置文件(Configuration Files) 波形波形(Waveform)文件文件 基于文本的測量文件(基于文本的測量文件(.lvm文件)文件) 數(shù)據(jù)存儲(chǔ)文件數(shù)據(jù)存儲(chǔ)文件(.tdm文件文件) 高速數(shù)據(jù)流文件文件高速數(shù)據(jù)流文件文件(.tdms文件文件) 二進(jìn)制文件(二進(jìn)制文件(Binary Files) 這是最有效率的

13、一種文件存儲(chǔ)格式,它占用的硬盤空間最少而且讀寫速度最快。它將二進(jìn)制數(shù)據(jù),譬如32位整數(shù)以確定的空間存儲(chǔ)4個(gè)字節(jié)來存儲(chǔ),因此不會(huì)損失精度,而且可以隨意的在文件指定位置讀寫數(shù)據(jù)。 二進(jìn)制文件的數(shù)據(jù)輸入可以是任何數(shù)據(jù)類型,譬如數(shù)組和簇等復(fù)雜數(shù)據(jù),但是在讀出時(shí)必須給定參考 讀寫二進(jìn)制文件 二進(jìn)制文件是計(jì)算機(jī)文件中最常見的文件。它占用空間最小,適合于連續(xù)存儲(chǔ)大量數(shù)據(jù)。同時(shí),它的存儲(chǔ)格式與數(shù)據(jù)在內(nèi)存中的存儲(chǔ)格式一致或者類似,很多情況下甚至是內(nèi)存的映射。因此,無論是存儲(chǔ)還是讀取都是速度最快的,而且還具有非常高的安全性。如果不知道數(shù)據(jù)的格式,很難分析出文件的格式。2. 文件I/O 二進(jìn)制文件(binary f

14、ile)包含任意內(nèi)容,如可執(zhí)行程序,圖像,聲音,壓縮過的其他文件圖片文件,JPG格式二進(jìn)制文件采用十六進(jìn)制編輯程序(如UltraEdit)打開使用文本編輯程序打開二進(jìn)制文件時(shí)出現(xiàn)“亂碼”,即強(qiáng)制按字符顯示實(shí)際上不是字符的二進(jìn)制數(shù)據(jù)2. 文件I/O文件文件IO2. 文件I/O 文本文件簡單直觀,很多程序都可打開,但占據(jù)較多存儲(chǔ)空間;二進(jìn)制文件占據(jù)較少空間,但具體數(shù)據(jù)存儲(chǔ)格式由程序自定義,只有特定程序可以打開; Windows系統(tǒng)中的文件擴(kuò)展名:提示文件格式,指示雙擊時(shí)操作系統(tǒng)調(diào)用相應(yīng)的程序打開文件; 將一個(gè)文本文件的擴(kuò)展名(.txt)改為圖片文件擴(kuò)展名(.jpg)并不能使文本文件變?yōu)閳D片文件,反

15、之亦然;這種改變只會(huì)引導(dǎo)操作系統(tǒng)使用錯(cuò)誤的程序打開文件。2. 文件I/O文件文件IO2. 文件I/OLabVIEW提供了豐富的文件I/O函數(shù)和功能,主要包括:打開和關(guān)閉文件;移動(dòng)和重新命名文件與目錄;改變文件屬性;在文件中讀取和寫入數(shù)據(jù);創(chuàng)建、修改和讀取配置文件 。2. 文件I/O文件I/O操作步驟,兩種編程思路創(chuàng)建/打開文件讀寫文件關(guān)閉文件 使用高級(jí)函數(shù)/VI,由編程者管理各個(gè)步驟,使用稍復(fù)雜,但靈活,效率高(底層函數(shù))創(chuàng)建/打開,讀寫,關(guān)閉文件 使用簡單函數(shù)/VI,內(nèi)含文件I/O的各個(gè)步驟,使用簡單,靈活性差(高層函數(shù))2. 文件I/O2. 文件I/O2. 文件I/O函數(shù)選板,編程-文件I

16、/O子選板高級(jí)文件I/O函數(shù)(部分)路徑處理文件路徑控件和常量控件選板,新式-字符串與路徑簡單文件I/O函數(shù)配置文件(.ini)I/O函數(shù),保存應(yīng)用程序參數(shù)配置函數(shù)選板,編程-文件I/O-文件常量2. 文件I/O電子表格文件?按表格形式組織的文本文件,行間采用換行分隔,行內(nèi)數(shù)據(jù)采用指定符號(hào)分隔例:存儲(chǔ)二維整數(shù)數(shù)組的電子表格文件1.dat,行內(nèi)數(shù)據(jù)采用制表符(t)分隔2.dat,行內(nèi)數(shù)據(jù)采用逗號(hào)(,)分隔經(jīng)過文本導(dǎo)入向?qū)В贓xcel中打開采用默認(rèn)的制表符“t”作為分隔符指定使用逗號(hào)“,”作為分隔符2. 文件I/O文件I/O的簡單函數(shù)1. 寫入電子表格文件(Write To Spreadshee

17、t File)功能:將1維或2維數(shù)值或字符串?dāng)?shù)組轉(zhuǎn)化為表格形式的字符串,并寫入到文件中;若“文件路徑”參數(shù)未接入,則彈出文件對(duì)話框;“分隔符”參數(shù)指定行內(nèi)分隔符,默認(rèn)為制表符t。將2維整數(shù)數(shù)組寫入電子表格文件(對(duì)應(yīng)前例)2. 文件I/O2. 讀取電子表格文件(Read From Spreadsheet File)功能:從電子表格形式的文本文件中讀取數(shù)據(jù)并轉(zhuǎn)化為1維或2維數(shù)組,數(shù)組元素類型為整型、浮點(diǎn)型或字符串型。多態(tài)VI選擇器 在列表中選擇具體使用哪個(gè)函數(shù)/VI實(shí)例讀取1.dat,默認(rèn)為采用制表符“t”分隔行內(nèi)數(shù)據(jù)多態(tài)VI:具有相似功能和不同參數(shù)類型的VI的集合2. 文件I/O3. 寫入測量文

18、件(Write To Measurement File)功能:將DDT類型信號(hào)寫入LabVIEW自定義的測量文件,文件可以是文本文件(.lvm),或者二進(jìn)制文件(.tdms和.tdm)。Express VI,通過對(duì)話框配置參數(shù)和功能選擇文本還是二進(jìn)制格式二維標(biāo)量數(shù)組 - 行是通道2. 文件I/O4. 讀取測量文件(Read From Measurement File)功能:從文本(.lvm)或者二進(jìn)制(.tdms和.tdm)格式的測量文件中讀取DDT類型信號(hào)。Express VI,通過對(duì)話框配置參數(shù)和功能打開/新建文件關(guān)閉文件讀/寫文件錯(cuò)誤簇,傳遞錯(cuò)誤信息2. 文件I/O以上涉及電子表格文件和

19、測量文件的函數(shù)都是在內(nèi)部封裝了多個(gè)文件操作步驟的簡單函數(shù)。文件I/O的高級(jí)函數(shù)高級(jí)函數(shù)經(jīng)常使用文件引用句柄(refnum),文件引用句柄是代表文件(及其資源)的唯一標(biāo)識(shí)符;高級(jí)函數(shù)通常以引用句柄和錯(cuò)誤簇串在一起使用:文件引用句柄(refnum),用于訪問已打開的文件資源2. 文件I/O在循環(huán)中使用文件I/O函數(shù)的效率問題打開/新建文件讀/寫文件關(guān)閉文件創(chuàng)建/打開,讀寫,關(guān)閉文件在循環(huán)內(nèi)部使用簡單函數(shù),每次循環(huán)都執(zhí)行打開文件和關(guān)閉文件的多余步驟,效率較低簡單函數(shù)高級(jí)文件I/O函數(shù)使用高級(jí)函數(shù),在循環(huán)外部打開和關(guān)閉文件,在循環(huán)內(nèi)部進(jìn)行讀/寫,效率較高2. 文件I/O1. 打開/創(chuàng)建/替換文件(Op

20、en/Create/Replace File)功能:打開已有文件,或創(chuàng)建新文件并打開,或替換已有文件并打開;打開文件后返回文件引用句柄;未接入“文件路徑”參數(shù)時(shí)彈出文件選擇對(duì)話框。2. 關(guān)閉文件(Close File)功能:關(guān)閉輸入?yún)?shù)“引用句柄”所代表的已打開文件。3. 格式化寫入文件(Format Into File)和掃描文件( Scan From File )與字符串相應(yīng)函數(shù)相似2. 文件I/O4. 寫入文本文件(Write to Text File)功能:將接入“文本”參數(shù)的字符串或字符串?dāng)?shù)組寫入文本文件,字符串?dāng)?shù)組中每個(gè)元素將作為文件中的一行;“文件”參數(shù)可以是路徑或文件引用句柄。

21、當(dāng)前VI所在目錄獲得絕對(duì)路徑 - (當(dāng)前VI所在目錄)/a.txt打開該選項(xiàng)讀取文本行,以每行文本為元素組成字符串?dāng)?shù)組2. 文件I/O5. 讀取文本文件(Read From Text File)功能:從文本文件中讀取指定數(shù)目的字符或文本行。已打開“讀取行”選項(xiàng)-1表示讀取文件全部內(nèi)容2. 文件I/O6. 寫入二進(jìn)制文件(Write To Binary File)功能:將數(shù)據(jù)寫入二進(jìn)制文件。波形自身頻率50 Hz,0.1秒波形包含5個(gè)完整正弦周期采樣信息,產(chǎn)生0.1秒的波形可以直接寫入任何數(shù)據(jù)類型的數(shù)據(jù)!2. 文件I/O7. 讀取二進(jìn)制文件(Read From Binary File)功能:從二

22、進(jìn)制文件中讀取數(shù)據(jù)。空的波形數(shù)據(jù),指定二進(jìn)制文件中存儲(chǔ)的數(shù)據(jù)的類型5個(gè)周期的正弦波形數(shù)據(jù)記錄文件的讀寫 由于二進(jìn)制文件格式的不確定性,使用非常困難,因此LabVIEW提供了具有格式的二進(jìn)制文件,即數(shù)據(jù)記錄文件。數(shù)據(jù)記錄文件特別適合于數(shù)據(jù)塊的存儲(chǔ)。數(shù)據(jù)記錄文件內(nèi)部是以記錄的方式存儲(chǔ)數(shù)據(jù)的,一個(gè)記錄就是一個(gè)完整的數(shù)據(jù)塊,文件位置定位采用記錄號(hào),因此尋址非常快。 文件常量和通用目錄、文件節(jié)點(diǎn)函數(shù) 除了文件常量之外,在高級(jí)文件函數(shù)選板中還提供了常用的文件操作函數(shù),比如拷貝、刪除、移動(dòng)、創(chuàng)建文件夾和羅列文件夾等。構(gòu)造路徑的方法 創(chuàng)建和拆分路徑 當(dāng)前VI路徑函數(shù)在編輯和運(yùn)行時(shí)的區(qū)別 解決開發(fā)和運(yùn)行環(huán)境路徑問題的幾種方法INI文件的讀寫文件的讀寫 在Win95版本以前,Windows操作系統(tǒng)還沒有引入注冊(cè)表的概念,當(dāng)時(shí)Windows是利用INI文件來存儲(chǔ)計(jì)算機(jī)相關(guān)配置的。 在API里,Windows提供了豐富的API函數(shù)來操作INI文件,LabVIEW里也專門有個(gè)子類別封裝了這些API函數(shù)。LabVIEW使用INI文件來存儲(chǔ)配置,應(yīng)用非常廣泛,生成執(zhí)行文檔后也自動(dòng)生成一個(gè)INI文件。 注冊(cè)表的讀寫 Windows注冊(cè)表的重要性是不言而喻的,Windows絕大部分重要信息都記錄在注冊(cè)表中。讀取注冊(cè)表是Windows編程的常用操作。注冊(cè)表是特定格式的二進(jìn)制文件,

溫馨提示

  • 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)論