當(dāng)前位置:首頁 > 測試測量 > 測試測量
[導(dǎo)讀]文本文件是由若干行字符構(gòu)成的計(jì)算機(jī)文件,根據(jù)本文存儲方式的不同有多種格式,如doc、txt、inf等。通常所指的文本文件是指能夠被系統(tǒng)終端或者簡單的文本編輯器中接受的格式,可以認(rèn)為這種文件是通用的、跨平臺的。對

文本文件是由若干行字符構(gòu)成的計(jì)算機(jī)文件,根據(jù)本文存儲方式的不同有多種格式,如doc、txt、inf等。通常所指的文本文件是指能夠被系統(tǒng)終端或者簡單的文本編輯器中接受的格式,可以認(rèn)為這種文件是通用的、跨平臺的。對通用的英文文本文件而言,ASCII碼是最為常見的編碼標(biāo)準(zhǔn);而如果需要存儲帶重音符號的英文或其它的非ASCII字符,則必須選擇一種字符編碼,如UTF-8。
盡管ASCII標(biāo)準(zhǔn)使得只含有ASCII字符的文本文件可以在Unix、Macintosh、Microsoft Windows、DOS和其它操作系統(tǒng)之間自由交互,但是在這些操作系統(tǒng)中,換行符并不相同,處理非ASCII字符的方式也不一致。換行(end-of-line, EOL)是一種加在文字字符最后位置的特殊字元,它可以確保后面的下一個(gè)字符能夠出現(xiàn)在下一行。ASCII編碼分別使用LF(Line Feed, 0Ah)或CR(Carriage Return, 0Dh)或CR+LF來表示換行(EOL),不同的操作系統(tǒng)處理EOL的方式如下:
LF:用于Unix或Unix相容系統(tǒng)(GNU/Linux, Mac OS X….),RISC OS;CR:Apple Ⅱ家族;CR+LF:Windows系統(tǒng),大部分非Unix操作系統(tǒng)。LabVIEW中的文本文件讀寫采用圖 1所示的兩個(gè)函數(shù)完成:“Write To Text File”和“Read From Text File”。這兩個(gè)函數(shù)是多態(tài)函數(shù),可以接受File Refnum和File Path兩種輸入。

圖 1 File I/O選板
本例將從一個(gè)數(shù)據(jù)讀寫的實(shí)例中介紹這兩個(gè)函數(shù)的使用。如圖 2所示,程序?qū)⒁粋€(gè)二維數(shù)組轉(zhuǎn)換為字符串后寫入到文本文件中,將會自動生成該Test.xls文件(如果已經(jīng)存在該名稱的文件,將自動覆蓋并不提示用戶)。盡管例子的后綴名使用xls(Microsoft Excel格式),但是實(shí)質(zhì)上是文本文件,使用各種文本編輯工具均可以打開(事實(shí)上也可以采用任何自定義格式的后綴名)。


圖 2 Write to Text File
如果需要將現(xiàn)有的數(shù)據(jù)添加到原有的文本文件中,應(yīng)該如何處理呢?如圖 3所示,打開文件后使用Set File Position將文件指針移動到文件尾,再寫入數(shù)據(jù),并關(guān)閉文件。


圖 3 Write to Text File_Append
對比圖 2和圖 3,可以看出,盡管都使用了Write To Text File函數(shù),但是二者的輸入是不一樣的,前者使用路徑而后者使用Refnum。此外,前者只使用了一個(gè)函數(shù);而后者還加入了Close File函數(shù)。事實(shí)上,當(dāng)使用文件路徑(Path)直接連入(或者為空,此時(shí)將彈出路徑選擇對話框)到Write To Text File函數(shù)中時(shí),LabVIEW將在執(zhí)行完該函數(shù)時(shí)自動文件;但是如果是使用文件句柄(Refnum)連入到該函數(shù)或者將函數(shù)的輸出句柄連接到了其它的函數(shù),則LabVIEW將認(rèn)為文件仍然在使用,并不自動關(guān)閉。
右擊Write To Text File函數(shù),在彈出菜單中有一個(gè)“Convert EOL”菜單項(xiàng),默認(rèn)是選中的。當(dāng)勾選了該選項(xiàng)后,該函數(shù)將把所有基于操作系統(tǒng)的EOL字符(行結(jié)束符)轉(zhuǎn)換為LabVIEW EOL符。比如會將單獨(dú)的“”和“”轉(zhuǎn)換成“”行結(jié)束符。
圖 4顯示了從Test.xls中讀取數(shù)據(jù)的實(shí)例代碼,使用Read from Text File函數(shù)能夠?qū)⑽谋疚募械淖址x取,程序員可以對這些字符串進(jìn)行后續(xù)的處理,如圖中轉(zhuǎn)化為Double數(shù)組。事實(shí)上,Read from Text File也能夠接受路徑和文件句柄兩種輸入方式,當(dāng)需要只讀取文件的部分字節(jié)時(shí)就需要使用到句柄操作了。


圖 4 Read from Text File
Read from Text File函數(shù)有一個(gè)count輸入,表示從文本文件中讀取的字節(jié)數(shù)(byte),當(dāng)設(shè)置為-1時(shí)表示整個(gè)文本。此外,在函數(shù)的右鍵快捷菜單中選擇“Read Lines”將以行為單位(而不是字節(jié))讀取文本文件。Read from Text File函數(shù)同樣也提供了“Convert EOL”選項(xiàng),此時(shí)該函數(shù)將把所有基于平臺的行結(jié)束符轉(zhuǎn)換為換行符,如將“”和“”轉(zhuǎn)換為“”。
【注意】
從Read from Text File函數(shù)的count端子可知,該端子為一個(gè)I32型整數(shù)。當(dāng)將其它類型的整數(shù)連入到該端子時(shí),將自動轉(zhuǎn)換為I32型整數(shù)。如果文件過大,超過了I32的表示范圍,需要分段讀取。
【討論】如何將一個(gè)文本文件的內(nèi)容清空,但是不要將該文件刪除呢?
這個(gè)問題似乎是程序員經(jīng)常遇到的,一個(gè)簡單的方式就是使用“Open/Create/Replace File”函數(shù),將operation參數(shù)設(shè)置為replace and create。但是如果在使用文件的過程中,如何將文件內(nèi)容清空呢?如圖 5所示。


圖 5 清空已寫入文件的文本
當(dāng)然可以先將該使用“Close File”函數(shù)關(guān)閉該文件,再使用“Open/Create/Replace File”函數(shù)新建該文件。此外,LabVIEW提供了一種字節(jié)控制的方式能夠迅速地清空文件中的內(nèi)容,如圖 6所示。


圖 6 使用Set File Size函數(shù)
毫無疑問,文本文件在數(shù)據(jù)存儲方面是非常重要的。通用、簡單和易用似乎是最大的優(yōu)勢,這一點(diǎn)從上面的實(shí)例中就可以看出來。但是,從測試測量的數(shù)據(jù)存儲方面來說,它也有一些缺點(diǎn)。如讀寫速度比較慢慢,不適合于高速數(shù)據(jù)記錄;文件取址和檢索比較麻煩,無法實(shí)現(xiàn)快速定位;當(dāng)數(shù)據(jù)量太大時(shí),打開文本文件會非常慢。此外,文本文件無法存儲顏色、富文本、圖像和視頻等多媒體信息。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉