虛擬儀器-labview-課件PPT-7_第1頁
虛擬儀器-labview-課件PPT-7_第2頁
虛擬儀器-labview-課件PPT-7_第3頁
虛擬儀器-labview-課件PPT-7_第4頁
虛擬儀器-labview-課件PPT-7_第5頁
已閱讀5頁,還剩78頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第七章 字符串與文件I/O7.17.1字符串控件與節(jié)點字符串控件與節(jié)點7.27.2文件文件I/OI/O第七章第七章 字符串與文件字符串與文件I/OI/O第七章 字符串與文件I/O7.1 7.1 字符串控件與節(jié)點字符串控件與節(jié)點 字符串是字符串是ASCIIASCII字符的集合。如同其他語言一字符的集合。如同其他語言一樣,樣,LabVIEWLabVIEW也提供了各種處理字符串的功能,也提供了各種處理字符串的功能, 7.1.1 7.1.1 字符串控件字符串控件 1 1. 創(chuàng)建字符串對象創(chuàng)建字符串對象 可以在可以在ControlsControlsModernModern String & Path S

2、tring & Path 中中創(chuàng)建如下字符串控制對象和顯示對象。創(chuàng)建如下字符串控制對象和顯示對象。第七章 字符串與文件I/O 還可以使用操還可以使用操作工具或者標簽工作工具或者標簽工具輸入或者改變字具輸入或者改變字符串控制對象中的符串控制對象中的文本。用移位工具文本。用移位工具拖曳字符串控制對拖曳字符串控制對象和顯示對象的邊象和顯示對象的邊角可以增大它們的角可以增大它們的面積。面積。第七章 字符串與文件I/O 2 2. 字符串控件菜單字符串控件菜單 在前面板字符串對象的右鍵彈出菜單中,可以調(diào)在前面板字符串對象的右鍵彈出菜單中,可以調(diào)整字符串控件的顯示模式和外觀。整字符串控件的顯示模式和外觀。第

3、七章 字符串與文件I/O b) “”Codes Display: b) “”Codes Display:控制碼顯示控制碼顯示 在該模式下,在該模式下, 把把“”及其后接的字符理及其后接的字符理解為格式化字符。這種模式可顯示一些不可見解為格式化字符。這種模式可顯示一些不可見字符。具體格式及含義見下表:字符。具體格式及含義見下表:(1 1)顯示模式)顯示模式 在字符串設(shè)置菜單中,共有在字符串設(shè)置菜單中,共有4 4中模式:中模式: a) Normal Displaya) Normal Display 是控件的缺省模式,在該模式下,顯示所是控件的缺省模式,在該模式下,顯示所有可顯示的輸入字符。有些字符

4、在該模式下有可顯示的輸入字符。有些字符在該模式下是不可顯示的,如制表符、是不可顯示的,如制表符、ESCESC等等第七章 字符串與文件I/O格式含 義00-FF接兩位十六進制整數(shù)(大寫),顯示該值的ASCII字符b退格符(BackSpace,ASCII BS,相當于08)f進格符(Foemfeed,ASCII FF, 相當于0C)n換行符(Linefeed,ASCII LF, 相當于0A )r回車符(Return, ASCII CR, 相當于0D )t制表符(Table,ASCII HT, 相當于09 )s空格符(Space,相當于 20 )反斜線( Backslash,ASCII, 相當于5C

5、 )第七章 字符串與文件I/O控制碼模式控制碼模式正常模式正常模式ASCII BF ASCII BF FOREFOREASCII B ASCII B eforeeforeb(b(退格退格) ) eforeefore 非法字符非法字符, ,忽略忽略“”r(r(回車回車) )(ASCII 3FASCII 3F)?)?r = r(r = r(反斜線反斜線) )第七章 字符串與文件I/O c) PassWord Display: c) PassWord Display:口令顯示口令顯示 在該模式下,在該模式下, 鍵入的字符以鍵入的字符以“* *”顯示,顯示,主要用于輸入口令或密碼??截惢蚣羟袝r,出主要

6、用于輸入口令或密碼??截惢蚣羟袝r,出現(xiàn)在剪切板上的也是現(xiàn)在剪切板上的也是“* *”。第七章 字符串與文件I/O d) Hex Display: d) Hex Display:十六進制顯示十六進制顯示 在該模式下,在該模式下, 顯示輸入字符對應(yīng)的十六進顯示輸入字符對應(yīng)的十六進制制ASCIIASCII碼。碼。輸入正常模式輸入正常模式 輸出十六進制模式輸出十六進制模式輸入十六進制模式輸入十六進制模式 輸出正常模式輸出正常模式 第七章 字符串與文件I/O(2 2)Limit to single LineLimit to single Line 在該選項有效后,可以防止輸入回車符。因在該選項有效后,可以

7、防止輸入回車符。因為在為在VIVI通信時,回車符意味著通信結(jié)束。注意通信時,回車符意味著通信結(jié)束。注意在控制碼模式下,在控制碼模式下,rr仍然有效。仍然有效。(3 3)Update Value While TypingUpdate Value While Typing 該選項有效后,輸入或更改每一個字符的結(jié)該選項有效后,輸入或更改每一個字符的結(jié)果都會同步地傳遞到端口上,即此時是逐個字符果都會同步地傳遞到端口上,即此時是逐個字符更新到程序端口上的。缺省情況下(此項未選更新到程序端口上的。缺省情況下(此項未選中),控件只在字符串輸入結(jié)束后(回車),才中),控件只在字符串輸入結(jié)束后(回車),才會把結(jié)

8、果傳遞給其它端口。會把結(jié)果傳遞給其它端口。第七章 字符串與文件I/O 3 3. 字符串控件的屬性設(shè)置字符串控件的屬性設(shè)置 通過在框圖中設(shè)置節(jié)點的屬性,可以改變字符串通過在框圖中設(shè)置節(jié)點的屬性,可以改變字符串控件的顯示外觀,這樣可在程序中動態(tài)調(diào)整字符串控件的顯示外觀,這樣可在程序中動態(tài)調(diào)整字符串控件的屬性??丶膶傩浴?文字大?。ㄎ淖执笮。═ext SizeText Size) 用來設(shè)置字符串控件的尺寸。其輸入為含兩用來設(shè)置字符串控件的尺寸。其輸入為含兩個無符號整數(shù)的簇,分別設(shè)置字符串控件的寬和個無符號整數(shù)的簇,分別設(shè)置字符串控件的寬和高。也可以由高。也可以由WidthWidth和和Height

9、Height兩個節(jié)點來完成。兩個節(jié)點來完成。第七章 字符串與文件I/O 滾動位置滾動位置(Scroll Position)(Scroll Position) 移動文本,其輸入為無符號整數(shù)移動文本,其輸入為無符號整數(shù)N N。使文本的。使文本的第第N N行處于字符串控件的頂端。動態(tài)改變節(jié)點的行處于字符串控件的頂端。動態(tài)改變節(jié)點的輸入,可以使文本滾動顯示。輸入,可以使文本滾動顯示。第七章 字符串與文件I/O 選擇字符選擇字符(Selection)(Selection) 用來選擇一部分字符。其輸入為含兩個無符號用來選擇一部分字符。其輸入為含兩個無符號整數(shù)的簇,分別設(shè)置字符串開始和結(jié)束位置。整數(shù)的簇,分

10、別設(shè)置字符串開始和結(jié)束位置。 顯示風格顯示風格(Display Style)(Display Style) 用來選擇顯示模式。輸入值用來選擇顯示模式。輸入值0 0、1 1、2 2、3 3分別表分別表示正常顯示、控制碼顯示、口令顯和十六進制碼示正常顯示、控制碼顯示、口令顯和十六進制碼顯示。顯示。第七章 字符串與文件I/O 滾動條滾動條(Scroll Bar)(Scroll Bar) 確定是否顯示滾動條。確定是否顯示滾動條。 文字顏色文字顏色(Display Style)(Display Style) 用來設(shè)置字符串顯示顏色。其輸入為含兩個無用來設(shè)置字符串顯示顏色。其輸入為含兩個無符號整數(shù)的簇,分

11、別為前景顏色和背景顏色符號整數(shù)的簇,分別為前景顏色和背景顏色 。第七章 字符串與文件I/O7.1.3 7.1.3 字符串節(jié)點字符串節(jié)點 1 1. 基本字符串操作節(jié)點基本字符串操作節(jié)點 求字符串長度節(jié)點(求字符串長度節(jié)點(String LengthString Length) 返回輸入字符串的長度。輸入可以是字符串(單返回輸入字符串的長度。輸入可以是字符串(單行或多行),可以是字符串數(shù)組,也可以是字符串行或多行),可以是字符串數(shù)組,也可以是字符串簇。注意:輸入字符串長度包括換行符。簇。注意:輸入字符串長度包括換行符。 例例8.1.1 8.1.1 輸入一個兩行字符串,求其長度。輸入一個兩行字符串,

12、求其長度。第七章 字符串與文件I/O 字符串合并(字符串合并(Concatenate StringConcatenate String) 把輸入的多個字符串合并成一個字符串。輸入可把輸入的多個字符串合并成一個字符串。輸入可以單一字符串、字符串數(shù)組或是字符串簇。注意:以單一字符串、字符串數(shù)組或是字符串簇。注意:輸入字符串長度包括換行符。輸入字符串長度包括換行符。 例例7.1.3 7.1.3 輸入輸入3 3個字符串,將其合并為一個字符串。個字符串,將其合并為一個字符串。第七章 字符串與文件I/O 子字符串提取(子字符串提?。⊿tring SubsetString Subset) 從輸入的字符串的從

13、輸入的字符串的Offset(0)Offset(0)位置開始提取規(guī)定位置開始提取規(guī)定長度長度LengthLength的字符串。當?shù)淖址?。當Length=0Length=0時,不操作。時,不操作。 節(jié)點圖標及接口:節(jié)點圖標及接口:第七章 字符串與文件I/O 格式化的時間字符串格式化的時間字符串(Format Date/Time StringFormat Date/Time String) 按給定格式輸出時間,包括年月日時分秒和星期。按給定格式輸出時間,包括年月日時分秒和星期。 節(jié)點圖標及接口:節(jié)點圖標及接口:第七章 字符串與文件I/O 時間輸出格式表如下:時間輸出格式表如下:格式含 義格式含 義

14、%d顯示日期%a顯示星期%m顯示月份%H顯示24小時制的小時%y顯示兩位數(shù)的年份%I顯示12小時制的小時%Y顯示四位數(shù)的年份%M顯示時間的分%x按本國習慣顯示日期%S顯示時間的秒%X按本國習慣顯示時間%P顯示AM/PM標志%c按本國習慣顯示日期/時間第七章 字符串與文件I/O例例7.1.47.1.4第七章 字符串與文件I/O 字符的大小寫轉(zhuǎn)換字符的大小寫轉(zhuǎn)換(To Upper Case,To Lower CaseTo Upper Case,To Lower Case) To Upper CaseTo Upper Case節(jié)點把輸入字符串中的小寫字母節(jié)點把輸入字符串中的小寫字母轉(zhuǎn)換為大寫字母;轉(zhuǎn)

15、換為大寫字母;To Lower CaseTo Lower Case節(jié)點把輸入字符節(jié)點把輸入字符串中的大寫字母轉(zhuǎn)換為小寫字母。串中的大寫字母轉(zhuǎn)換為小寫字母。 節(jié)點圖標及接口:節(jié)點圖標及接口:第七章 字符串與文件I/O 子字符串的替換子字符串的替換(Replace Substring)(Replace Substring) 能實現(xiàn)字符串的插入、刪除、替換和抽取,節(jié)能實現(xiàn)字符串的插入、刪除、替換和抽取,節(jié)點圖標及接口:點圖標及接口:第七章 字符串與文件I/O第七章 字符串與文件I/O 字符串的查找與替換字符串的查找與替換(Search and Replace String)(Search and R

16、eplace String) 能實現(xiàn)字符串的查找與替換,節(jié)點圖標及接口:能實現(xiàn)字符串的查找與替換,節(jié)點圖標及接口:第七章 字符串與文件I/O2 2. 指令、參數(shù)整合節(jié)點指令、參數(shù)整合節(jié)點 從多行字符串中提取從多行字符串中提取1 1行(行(Pick LinePick Line) 在輸入的多行字符串中在輸入的多行字符串中multi-line stringmulti-line string中,中,提取一個指定行(提取一個指定行(line indexline index), ,并把這行加到字并把這行加到字符串符串stringstring后,組成一個新的字符串輸出。后,組成一個新的字符串輸出。 節(jié)點圖標

17、及接口:節(jié)點圖標及接口: 第七章 字符串與文件I/O第七章 字符串與文件I/O 從字符串數(shù)組中提取從字符串數(shù)組中提取1 1行行(Index String ArrayIndex String Array) 把字符串數(shù)組把字符串數(shù)組string arraystring array中指定單元中指定單元(index)(index)的字符串提取的字符串提取, ,并把這行加到字符串并把這行加到字符串stringstring后,組后,組成一個新的字符串輸出。成一個新的字符串輸出。 節(jié)點圖標及接口:節(jié)點圖標及接口: 第七章 字符串與文件I/O第七章 字符串與文件I/O 條件選擇字符串并擴展條件選擇字符串并擴展

18、( (Append True/False String)Append True/False String) 如果如果selectorselector輸入為輸入為True,True,把把true stringtrue string字符串字符串加到字符串加到字符串stringstring后;如果后;如果selectorselector輸入為輸入為False,False,把把false stringfalse string字符串加到字符串字符串加到字符串stringstring后后, ,組成組成一個新的字符串輸出。一個新的字符串輸出。 節(jié)點圖標及接口:節(jié)點圖標及接口: 第七章 字符串與文件I/O第七

19、章 字符串與文件I/O 多字符串的格式化整合多字符串的格式化整合(Format into(Format into String)String) 該節(jié)點把多個輸入與該節(jié)點把多個輸入與initialinitial合并成一個字符串合并成一個字符串輸出。輸入可以是字符串,也可以是數(shù)值。輸出的輸出。輸入可以是字符串,也可以是數(shù)值。輸出的格式由格式化字符串決定。格式由格式化字符串決定。 節(jié)點圖標及接口:節(jié)點圖標及接口: 第七章 字符串與文件I/O 格式化字符串含義表:格式化字符串含義表:格式含 義%f十進制浮點數(shù)%d十進制整數(shù)%x十六進制整數(shù)%o八進制整數(shù)%s二進制整數(shù)%A-Za-z字符串%A-Za-z由

20、英文字母組成的字符串a(chǎn)bcd由非英文字母組成的字符串%百分號%,:%?:十進制浮點數(shù)的小數(shù)點的形式第七章 字符串與文件I/O 不同格式化字符串輸入時的輸出不同格式化字符串輸入時的輸出Format StringArgument(s)Resulting StringScore=%2d%87Score=87%Level=n-7.2eV0.03642Level=3.642e-2VName:%s,%sSmithJhonName=Smith,JhoneTemp:%05.1f%s93.793FahrenheitTemp:096.8 FahrenheitString:%10.5sHello,world_Hel

21、lo第七章 字符串與文件I/O3 3. 表達式分析、控制命令節(jié)點表達式分析、控制命令節(jié)點 表達式分析表達式分析(Scan Form StringScan Form String) 根據(jù)格式化字符串根據(jù)格式化字符串format stringformat string的要求來分析的要求來分析輸入字符串,并將其直接轉(zhuǎn)化為相應(yīng)的類型。在輸入字符串,并將其直接轉(zhuǎn)化為相應(yīng)的類型。在搜索時遇到第一個不匹配的類型時,停止搜索,搜索時遇到第一個不匹配的類型時,停止搜索,余下的字符在余下的字符在remaining stringremaining string中輸出。中輸出。 節(jié)點圖標及接口:節(jié)點圖標及接口:第七章

22、 字符串與文件I/O 不同格式化字符串輸入時的輸出不同格式化字符串輸入時的輸出輸入字符串格式輸出剩余字符串a(chǎn)bc, xyz12.3e2 7200%s,%s%f%2dAbcXyz12.3e27200Q+1.27e-3tailQ%ft1.27e-3ail0123456789%3d%3d123456789Set3, 46%, ;%s%fSet3.46Set49.4.2Set%d49.4.2第七章 字符串與文件I/O 子字符串條件查找子字符串條件查找(Match PatternMatch Pattern) 根據(jù)輸入根據(jù)輸入regular expressionregular expression定義的條

23、件,從定義的條件,從offsetoffset位置開始檢查輸入字符串是否存在滿足該位置開始檢查輸入字符串是否存在滿足該條件的子字符串。如果存在,則在條件的子字符串。如果存在,則在match match substringsubstring中返回該子字符串,中返回該子字符串,offset past offset past macthmacth返回返回after substringafter substring后第一個字符的位置。后第一個字符的位置。否則否則offset past macthoffset past macth返回返回1 1。 regular expressionregular exp

24、ression可以使字符串,也可是通可以使字符串,也可是通配符。節(jié)點圖標及接口:配符。節(jié)點圖標及接口: 第七章 字符串與文件I/O 特征字符串查找特征字符串查找(Scan String For TokenScan String For Token) 節(jié)點圖標及接口:節(jié)點圖標及接口: 這個節(jié)點用于分析查找輸入字符串中的一些這個節(jié)點用于分析查找輸入字符串中的一些特征字符串,特征字符串,可用來分析運算表達式字符串中的可用來分析運算表達式字符串中的數(shù)字、變量、運算符等。輸入輸出端口含義:數(shù)字、變量、運算符等。輸入輸出端口含義: operatorsoperators:字符串數(shù)組輸入,用來列舉特征字:字符

25、串數(shù)組輸入,用來列舉特征字符串。符串。 delimiters:delimiters:字符串數(shù)組輸入,用來列舉分隔符,字符串數(shù)組輸入,用來列舉分隔符,在兩個分隔符之間的子字符串就是一個特征在兩個分隔符之間的子字符串就是一個特征第七章 字符串與文件I/O子字符串。子字符串。DelimitersDelimiters的缺省值為的缺省值為%s,%t,%r,%n (%s,%t,%r,%n (空格、空格、制表符、換行、回車制表符、換行、回車) )。 Offset past token:Offset past token:上一個特征子字符串結(jié)束的位置,上一個特征子字符串結(jié)束的位置,即下一個特征子字符串的起始位

26、置。即下一個特征子字符串的起始位置。 token string:token string:輸出查找到的特征子字符串。輸出查找到的特征子字符串。 token index:token index:如果找到的特征子字符串是如果找到的特征子字符串是operatorsoperators中中列舉的,則在列舉的,則在token indextoken index中輸出子字符串在中輸出子字符串在operatorsoperators數(shù)組中的位置,否則輸出數(shù)組中的位置,否則輸出1 1。若搜索到字符串尾,則輸。若搜索到字符串尾,則輸出出2 2。 Allow empty tokens: if trueAllow emp

27、ty tokens: if true,在輸入中有兩個相臨,在輸入中有兩個相臨的分隔符時,將在的分隔符時,將在token stringtoken string中返回一個空值。中返回一個空值。 use cached delim/oper data?: if true,use cached delim/oper data?: if true,將有一個緩將有一個緩沖區(qū)來保存沖區(qū)來保存delimdelim和和operoper中的數(shù)據(jù)。分析開始時,保證該中的數(shù)據(jù)。分析開始時,保證該值為值為falsefalse。第七章 字符串與文件I/O例例7.1.7 Scan String For Token 7.1.7

28、 Scan String For Token 節(jié)點用法。節(jié)點用法。第七章 字符串與文件I/O第七章 字符串與文件I/O4 4. 電子表格字符串操作節(jié)點電子表格字符串操作節(jié)點 數(shù)組到電子表格數(shù)組到電子表格( (Array to spreadsheet String)Array to spreadsheet String) 電子表格是用文本方式記錄數(shù)據(jù)的。它把數(shù)據(jù)電子表格是用文本方式記錄數(shù)據(jù)的。它把數(shù)據(jù)分成很多行,行與行之間用換行符分隔,同一行分成很多行,行與行之間用換行符分隔,同一行的不同數(shù)據(jù)單元用制表符分隔。該節(jié)點用于把數(shù)的不同數(shù)據(jù)單元用制表符分隔。該節(jié)點用于把數(shù)組中的數(shù)值或字符串用電子表格的

29、形式表示。組中的數(shù)值或字符串用電子表格的形式表示。 節(jié)點圖標及接口:節(jié)點圖標及接口: 第七章 字符串與文件I/O例例7.1.8 7.1.8 把一個浮點數(shù)的數(shù)組轉(zhuǎn)換成電子表格。把一個浮點數(shù)的數(shù)組轉(zhuǎn)換成電子表格。第七章 字符串與文件I/O 電子表格到數(shù)組電子表格到數(shù)組 ( (spreadsheet Stringspreadsheet String toto Array)Array) 該節(jié)點與該節(jié)點與spreadsheet String to Arrayspreadsheet String to Array節(jié)點的節(jié)點的功能相反,它把一個電子表格轉(zhuǎn)化成一個數(shù)組。數(shù)功能相反,它把一個電子表格轉(zhuǎn)化成一個數(shù)

30、組。數(shù)組類型在組類型在array typearray type中定義,缺省為二維的浮點數(shù)中定義,缺省為二維的浮點數(shù)數(shù)組。數(shù)組。 節(jié)點圖標及接口:節(jié)點圖標及接口: 第七章 字符串與文件I/O7.2 7.2 文件文件I/OI/O7.2.1 7.2.1 基本概念及術(shù)語基本概念及術(shù)語 1 1. 路徑及路徑控件路徑及路徑控件(Path Control and Indictor)(Path Control and Indictor) 文件名:文件的名稱;文件名:文件的名稱; 目錄:指文件存在的位置;目錄:指文件存在的位置; 路徑:保存文件所在位置的目錄和文件名。路徑:保存文件所在位置的目錄和文件名。 La

31、bVIEWLabVIEW用路徑輸入控件輸入一個路徑;用路徑用路徑輸入控件輸入一個路徑;用路徑輸出控件返回一個路徑。路徑名的輸入與字符串輸出控件返回一個路徑。路徑名的輸入與字符串完全相同,路徑就是一種符合一定格式的字符串。完全相同,路徑就是一種符合一定格式的字符串。路徑輸入輸出控件面板及端口如下:路徑輸入輸出控件面板及端口如下: 第七章 字符串與文件I/O2 2. LabVIEWLabVIEW文件的分類文件的分類 LabVIEWLabVIEW提供了多種文件類型,如提供了多種文件類型,如: :文本文件、文本文件、二進制文件、數(shù)據(jù)記錄文件、波形數(shù)據(jù)文件等。二進制文件、數(shù)據(jù)記錄文件、波形數(shù)據(jù)文件等。

32、文本文件文本文件(Text Files)(Text Files) 這種格式的文件是這種格式的文件是ASCIIASCII碼字節(jié)流,可以用文字碼字節(jié)流,可以用文字處理軟件或電子表格程序來讀取或處理數(shù)據(jù)。缺處理軟件或電子表格程序來讀取或處理數(shù)據(jù)。缺點是占用的磁盤空間大,存取速度慢。如對一個點是占用的磁盤空間大,存取速度慢。如對一個浮點數(shù)浮點數(shù)123.4567123.4567,如按單精度浮點數(shù)存儲只占,如按單精度浮點數(shù)存儲只占用用4 4個字節(jié);但按個字節(jié);但按ASCIIASCII碼字符串存儲,需占用碼字符串存儲,需占用9 9個個字節(jié)。由于不同數(shù)據(jù)占用不同字節(jié)數(shù),因此不能字節(jié)。由于不同數(shù)據(jù)占用不同字節(jié)數(shù)

33、,因此不能隨機訪問數(shù)據(jù)文件。隨機訪問數(shù)據(jù)文件。第七章 字符串與文件I/O 表單文件(表單文件(Spreadsheet FilesSpreadsheet Files) 這實際上也是一種文本文件,只不過它的輸入這實際上也是一種文本文件,只不過它的輸入數(shù)據(jù)格式可以是一維或二維數(shù)據(jù)數(shù)組。它將數(shù)據(jù)數(shù)據(jù)格式可以是一維或二維數(shù)據(jù)數(shù)組。它將數(shù)據(jù)數(shù)組轉(zhuǎn)換為數(shù)組轉(zhuǎn)換為ASCIIASCII碼存放在電子表格文件中,因此碼存放在電子表格文件中,因此用它存儲數(shù)據(jù)數(shù)組非常方便。用它存儲數(shù)據(jù)數(shù)組非常方便。 二進制文件(二進制文件(Binary FilesBinary Files) 是速度最快,格式最緊湊的數(shù)據(jù)存儲方式??墒撬?/p>

34、度最快,格式最緊湊的數(shù)據(jù)存儲方式??梢詫ΧM制文件進行隨機訪問,但需知道數(shù)據(jù)類以對二進制文件進行隨機訪問,但需知道數(shù)據(jù)類型。型。 與文本文件不同的是,人們不能直接讀懂二進與文本文件不同的是,人們不能直接讀懂二進制文件,必須通過翻譯后才能讀懂。制文件,必須通過翻譯后才能讀懂。第七章 字符串與文件I/O 數(shù)據(jù)記錄文件數(shù)據(jù)記錄文件(Datalog Files)(Datalog Files) 實際也是一種二進制文件。它的基本數(shù)據(jù)類型實際也是一種二進制文件。它的基本數(shù)據(jù)類型為記錄塊為記錄塊(Record)(Record),一個記錄中可以有幾種不同,一個記錄中可以有幾種不同的數(shù)據(jù)類型。同一文件的數(shù)據(jù)塊必須

35、有相同的數(shù)的數(shù)據(jù)類型。同一文件的數(shù)據(jù)塊必須有相同的數(shù)據(jù)結(jié)構(gòu)。塊記錄文件的存儲、添加、刪除等操作據(jù)結(jié)構(gòu)。塊記錄文件的存儲、添加、刪除等操作必須以記錄為單位。必須以記錄為單位。 波形數(shù)據(jù)文件(波形數(shù)據(jù)文件(WaveformWaveform) 這種文件保護了波形數(shù)據(jù)特有的一些信息,如這種文件保護了波形數(shù)據(jù)特有的一些信息,如采樣開始時間、采樣間隔等。采樣開始時間、采樣間隔等。 其它文件類型其它文件類型 XMLXML文件、配置文件、文件、配置文件、LVMLVM文件、文件、TDMTDM文件,以及文件,以及TDMSTDMS文件。文件。第七章 字符串與文件I/O3.3. 文件文件I/OI/O的錯誤處理的錯誤處

36、理 在在LabVIEWLabVIEW中,大多數(shù)文件中,大多數(shù)文件I/OI/O節(jié)點有一個節(jié)點有一個error inerror in和和error outerror out端口,它們的數(shù)據(jù)類型為簇。端口,它們的數(shù)據(jù)類型為簇。當幾個當幾個I/OI/O節(jié)點連接在一起,如果一個節(jié)點出錯,節(jié)點連接在一起,如果一個節(jié)點出錯,則該節(jié)點的則該節(jié)點的error outerror out將返回的錯誤信息傳遞到下將返回的錯誤信息傳遞到下一個節(jié)點的一個節(jié)點的error inerror in,此時接收到錯誤信息的節(jié),此時接收到錯誤信息的節(jié)點不執(zhí)行操作,而把錯誤信息通過點不執(zhí)行操作,而把錯誤信息通過error outerr

37、or out傳遞傳遞到下一個節(jié)點的到下一個節(jié)點的error inerror in,直到最后一個節(jié)點。,直到最后一個節(jié)點。這樣就可在最后一個節(jié)點的這樣就可在最后一個節(jié)點的error outerror out端口連接出端口連接出錯處理錯處理VIVI,避免錯誤擴散和無用操作,避免錯誤擴散和無用操作第七章 字符串與文件I/O7.2.2 7.2.2 文件的基本操作文件的基本操作 LabVIEWLabVIEW提供了一組文件提供了一組文件I/OI/O操作節(jié)點集,用于操作節(jié)點集,用于文件的創(chuàng)立、讀、寫,刪除、移動及文件拷貝,文件的創(chuàng)立、讀、寫,刪除、移動及文件拷貝,查看文件及目錄列表等。查看文件及目錄列表等。

38、 文件操作主要包含文件操作主要包含3 3個步驟個步驟: (1)(1)創(chuàng)建新文件或打開一個舊文件;創(chuàng)建新文件或打開一個舊文件; (2)(2)對文件進行讀寫操作;對文件進行讀寫操作; (3)(3)關(guān)閉文件。關(guān)閉文件。 LabVIEWLabVIEW的文件操作節(jié)點如下:的文件操作節(jié)點如下:第七章 字符串與文件I/O第七章 字符串與文件I/O7.2.3 7.2.3 表單文件表單文件 1 1 寫電子表格文件寫電子表格文件(Write to Spreadsheet File)(Write to Spreadsheet File) 該節(jié)點把一個二維或一維單精度浮點數(shù)數(shù)組寫該節(jié)點把一個二維或一維單精度浮點數(shù)數(shù)組

39、寫到一個電子表格文件中。節(jié)點圖標及連接端口如到一個電子表格文件中。節(jié)點圖標及連接端口如下圖:下圖: 如果文件存在,則既可以把數(shù)據(jù)追加到該文件,如果文件存在,則既可以把數(shù)據(jù)追加到該文件,也可以覆蓋原有的數(shù)據(jù);如果文件不存在,則創(chuàng)也可以覆蓋原有的數(shù)據(jù);如果文件不存在,則創(chuàng)建新文件。此節(jié)點在讀取數(shù)據(jù)前打開文件,讀取建新文件。此節(jié)點在讀取數(shù)據(jù)前打開文件,讀取操作完成后關(guān)閉該文件。操作完成后關(guān)閉該文件。第七章 字符串與文件I/O 2 2 讀電子表格文件讀電子表格文件(Read From Spreadsheet File)(Read From Spreadsheet File) 從一個電子表格文件中讀取一

40、定數(shù)量的數(shù)據(jù),從一個電子表格文件中讀取一定數(shù)量的數(shù)據(jù),并把這些數(shù)值字符串轉(zhuǎn)換成單精度浮點數(shù)后,從并把這些數(shù)值字符串轉(zhuǎn)換成單精度浮點數(shù)后,從一個二維數(shù)組中返回。節(jié)點圖標及連接端口如下一個二維數(shù)組中返回。節(jié)點圖標及連接端口如下圖:圖: 注意:電子表格文件的所有字符串必須由有效注意:電子表格文件的所有字符串必須由有效的數(shù)值字符組成。此節(jié)點在讀取數(shù)據(jù)前打開文件,的數(shù)值字符組成。此節(jié)點在讀取數(shù)據(jù)前打開文件,讀取操作完成后關(guān)閉該文件。讀取操作完成后關(guān)閉該文件。第七章 字符串與文件I/O例例 7.2.1 7.2.1 由序號由序號i i和一個隨機數(shù)構(gòu)成的電子表和一個隨機數(shù)構(gòu)成的電子表格文件。格文件。第七章 字

41、符串與文件I/O 運行該程序后,在運行該程序后,在E E盤生成盤生成c1.xlsdc1.xlsd的電子表的電子表格文件。用格文件。用ExcelExcel打開這個文件,可以看兩列數(shù)打開這個文件,可以看兩列數(shù)據(jù):一列是序號,另一列是隨機數(shù)。據(jù):一列是序號,另一列是隨機數(shù)。 第七章 字符串與文件I/O例例 7.2.2 7.2.2 讀電子表格文件。讀電子表格文件。第七章 字符串與文件I/O7.2.4 7.2.4 文本文件文本文件 1 1 寫文本文件寫文本文件(Write to Text File)(Write to Text File) 把字符串寫入一個新文件中或追加到一個已經(jīng)把字符串寫入一個新文件中

42、或追加到一個已經(jīng)存在的文件尾。在寫字符串前,打開或創(chuàng)建文件;存在的文件尾。在寫字符串前,打開或創(chuàng)建文件;操作完成后自動關(guān)閉該文件。節(jié)點圖標及連接端操作完成后自動關(guān)閉該文件。節(jié)點圖標及連接端口如下圖:口如下圖:第七章 字符串與文件I/O 2 2 讀取文本文件讀取文本文件(Read From Text File)(Read From Text File) 從一個文本文件中讀取字符,操作完成后自動從一個文本文件中讀取字符,操作完成后自動關(guān)閉該文件。節(jié)點圖標及連接端口如下圖:關(guān)閉該文件。節(jié)點圖標及連接端口如下圖:第七章 字符串與文件I/O例例 7.2.3 7.2.3 由序號由序號i i和一個隨機數(shù)構(gòu)成

43、的文本文和一個隨機數(shù)構(gòu)成的文本文件。件。第七章 字符串與文件I/O 運行該程序后,在運行該程序后,在E E盤生成盤生成f1f1的文本文件。用的文本文件。用記事本打開這個文件,可以該數(shù)據(jù)序列。記事本打開這個文件,可以該數(shù)據(jù)序列。 第七章 字符串與文件I/O例例 7.2.4 7.2.4 讀文本文件。讀文本文件。第七章 字符串與文件I/O7.2.5 7.2.5 二進制文件二進制文件 1 1 寫二進制文件寫二進制文件(Write to Binary File) (Write to Binary File) 二進制文件的數(shù)據(jù)可以是任何數(shù)據(jù)類型,譬如二進制文件的數(shù)據(jù)可以是任何數(shù)據(jù)類型,譬如數(shù)組或簇等復雜數(shù)

44、據(jù)。新的數(shù)據(jù)可以追加到已有數(shù)組或簇等復雜數(shù)據(jù)。新的數(shù)據(jù)可以追加到已有文件尾,也可以覆蓋原有的數(shù)據(jù);如果輸入的文文件尾,也可以覆蓋原有的數(shù)據(jù);如果輸入的文件不存在,則創(chuàng)建一個新文件。節(jié)點圖標及連接件不存在,則創(chuàng)建一個新文件。節(jié)點圖標及連接端口如下圖:端口如下圖:第七章 字符串與文件I/O 2 2 讀二進制文件讀二進制文件(Read From Binary File) (Read From Binary File) 從一個二進制文件中讀取指定格式的數(shù)據(jù),讀從一個二進制文件中讀取指定格式的數(shù)據(jù),讀出時的數(shù)據(jù)格式必須與寫入時的格式完全一致,出時的數(shù)據(jù)格式必須與寫入時的格式完全一致,否則數(shù)據(jù)出現(xiàn)混亂。節(jié)

45、點圖標及連接端口如下圖:否則數(shù)據(jù)出現(xiàn)混亂。節(jié)點圖標及連接端口如下圖:第七章 字符串與文件I/O例例 7.2.5 7.2.5 二進制文件保存二進制文件保存第七章 字符串與文件I/O例例 7.2.6 7.2.6 二進制文件讀取二進制文件讀取第七章 字符串與文件I/O7.2.6 7.2.6 數(shù)據(jù)記錄文件數(shù)據(jù)記錄文件 數(shù)據(jù)記錄文件實際也是一種二進制文件,輸數(shù)據(jù)記錄文件實際也是一種二進制文件,輸入的數(shù)據(jù)類型可以是任何數(shù)據(jù)類型。操作方法入的數(shù)據(jù)類型可以是任何數(shù)據(jù)類型。操作方法與二進制文件基本相同。不同的是數(shù)據(jù)記錄文與二進制文件基本相同。不同的是數(shù)據(jù)記錄文件必須用它的專用操作函數(shù)。在件必須用它的專用操作函數(shù)

46、。在FILE I/O| FILE I/O| Advanced File Functions|DatalogAdvanced File Functions|Datalog下下第七章 字符串與文件I/O 1 1. 寫數(shù)據(jù)記錄文件寫數(shù)據(jù)記錄文件 數(shù)據(jù)記錄文件類似于數(shù)據(jù)庫文件,每個記錄數(shù)據(jù)記錄文件類似于數(shù)據(jù)庫文件,每個記錄實際就是一個簇。如上圖,該簇由一個字符串,實際就是一個簇。如上圖,該簇由一個字符串,一個數(shù)值和一個數(shù)組構(gòu)成。一個數(shù)值和一個數(shù)組構(gòu)成。第七章 字符串與文件I/O第七章 字符串與文件I/O 2 2. 讀數(shù)據(jù)記錄文件讀數(shù)據(jù)記錄文件 注意:如果注意:如果dadtlog typedadtlog

47、 type參數(shù)的數(shù)據(jù)類型與數(shù)參數(shù)的數(shù)據(jù)類型與數(shù)據(jù)記錄文件中的數(shù)據(jù)類型不匹配,程序運行后不據(jù)記錄文件中的數(shù)據(jù)類型不匹配,程序運行后不能讀出數(shù)據(jù),并返回類型沖突的出錯信息。能讀出數(shù)據(jù),并返回類型沖突的出錯信息。第七章 字符串與文件I/O 讀取的數(shù)據(jù)記錄如下:讀取的數(shù)據(jù)記錄如下:第七章 字符串與文件I/O7.2.7 7.2.7 波形文件的輸入輸出波形文件的輸入輸出 波形文件實際也是一種數(shù)據(jù)記錄文件。一個波形波形文件實際也是一種數(shù)據(jù)記錄文件。一個波形包括采樣開始時間包括采樣開始時間t0t0,采樣時間間隔,采樣時間間隔dtdt,和采樣數(shù),和采樣數(shù)據(jù)(一個數(shù)組)三部分信息。據(jù)(一個數(shù)組)三部分信息。 1

48、1. 寫波形文件寫波形文件 第七章 字符串與文件I/O 寫波形文件程序前面板:寫波形文件程序前面板: 第七章 字符串與文件I/O 2 2. 讀波形文件讀波形文件 讀波形文件程序框圖:讀波形文件程序框圖:第七章 字符串與文件I/O 讀波形文件程序前面板:讀波形文件程序前面板: 第七章 字符串與文件I/O 7.2.8 7.2.8 常用高級文件操作節(jié)點常用高級文件操作節(jié)點 在高級文件操作模板下,除了數(shù)據(jù)記錄文件子在高級文件操作模板下,除了數(shù)據(jù)記錄文件子模板外,還包括了一些其它常用文件操作函數(shù)。模板外,還包括了一些其它常用文件操作函數(shù)。如下圖:如下圖:第七章 字符串與文件I/O 1 1 文件指針定位節(jié)

49、點文件指針定位節(jié)點(Set File Position) (Set File Position) LabVIEW LabVIEW的的SeekSeek節(jié)點可以用來移動文件針,節(jié)點節(jié)點可以用來移動文件針,節(jié)點圖標及連接端口如下圖:圖標及連接端口如下圖: 指針移動位置由指針移動位置由fromfrom和和offsetoffset決定。當決定。當fromfrom0 0,文件指針為文件開始指針文件指針為文件開始指針(0)(0)與與offsetoffset的值相加的的值相加的結(jié)果;當結(jié)果;當from from 1 1,文件指針為文件尾指針,文件指針為文件尾指針( (即文即文件長度件長度) )與與offset

50、offset的值相加的結(jié)果;當?shù)闹迪嗉拥慕Y(jié)果;當fromfrom2 2,文件指針為當前指針與文件指針為當前指針與offsetoffset的值相加的結(jié)果。的值相加的結(jié)果。第七章 字符串與文件I/O 2 2 設(shè)置文件大小設(shè)置文件大小(Set File Size) (Set File Size) 在文件的指定位置設(shè)置一個文件結(jié)束符在文件的指定位置設(shè)置一個文件結(jié)束符EOFEOF來設(shè)來設(shè)置文件大小,節(jié)點圖標及連接端口如下圖:置文件大小,節(jié)點圖標及連接端口如下圖: 文件截斷位置由文件截斷位置由sizesize指定。操作完成后,文件指定。操作完成后,文件指針位于文件尾。指針位于文件尾。第七章 字符串與文件I/O 3 3 刪除文件(刪除文件(del) del) 刪除由刪除由pathpath輸入的文件或目錄,節(jié)點圖標及連輸入的文件或目錄,節(jié)點圖標及連接端口如下圖:接端口如下圖: 4 4 移動文件(移動文件(Move) Move) 把一個文件從源位置移動到目標位置。節(jié)點圖把一個文件從源位置移動到目標位置。節(jié)點圖標及連

溫馨提示

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

評論

0/150

提交評論