亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Labview應用程序開發(fā)中使用支持文件相對路徑的有關問題

        2015-12-24 01:52:51金陽
        湖北汽車工業(yè)學院學報 2015年1期
        關鍵詞:主程序前面板磁盤

        金陽

        (湖北汽車工業(yè)學院汽車工程學院,十堰湖北442002)

        Labview應用程序開發(fā)中使用支持文件相對路徑的有關問題

        金陽

        (湖北汽車工業(yè)學院汽車工程學院,十堰湖北442002)

        用Labview開發(fā)涉及支持文件讀寫的應用程序時,常會出現(xiàn)調(diào)試正常而可執(zhí)行文件運行時找不到支持文件路徑的錯誤?;谝缓唵问纠治隽水a(chǎn)生此問題的原因并提供了解決問題的思路。

        Labview;相對路徑;支持文件;應用程序開發(fā)

        Labview是一種圖形化編程語言,常用于測量測試領域應用程序的開發(fā)。一個完整的應用程序不僅涉及Labview編寫的源程序,還會讀寫很多格式的支持文件,如txt、word、excel、mdb等格式文件。為了程序的可移植性,在讀寫支持文件時,常使用支持文件相對于讀寫該文件的Labview源程序文件的相對路徑。可是開發(fā)者會發(fā)現(xiàn):Labview調(diào)試環(huán)境中運行正常的程序在生成應用程序后,會出現(xiàn)找不到支持文件路徑的錯誤。本文中以一個簡單的應用程序開發(fā)為例,分析了產(chǎn)生此問題的原因并提供了解決此問題的方法。本文中的示例用Labview 2013中文版開發(fā),并且假定讀者已具有Labveiw編程的基本技能。

        1 應用程序開發(fā)項目的原始文件構成

        開發(fā)一個Labview應用可能需要:Labview源程序,其后綴名為“vi”,因而一個源程序也被稱為一個VI;各種數(shù)據(jù)文件,如txt、word、excel、html、mdb等格式文件。這些不能由Labview開發(fā)環(huán)境直接打開編輯,但能通過Labview程序代碼對之進行讀寫的文件被稱為支持文件。支持文件中可以存儲參數(shù)缺省值、采集到的數(shù)據(jù)、測試報告等。圖1是開發(fā)某個應用程序所需的全部相關文件在磁盤上的存儲路徑示意圖,包括2個VI和1個txt文件。“主程序.vi”和“to be read.txt”位于磁盤目錄“D:示例文件夾”下;“讀txt文件.vi”位于磁盤目錄“D:標例文件夾子VIs”下。

        圖1 原始文件存儲路徑樹示例

        “to be read.txt”文件中的內(nèi)容如圖2所示。

        圖2 “to be read.txt”文件中的內(nèi)容

        圖1中的“主程序.vi”是啟動VI(Starup VI),類似于其它文本編程語言中的主程序。在LabVIEW中,任何一個VI都可以被其它VI調(diào)用而成為一個子VI,即子程序。此子VI又可調(diào)用其它VI,使后者成為更下一層的子VI。處于調(diào)用層級最頂層的那個VI就是啟動VI,程序的運行是從它開始的。

        本開發(fā)示例中,完成源程序編寫后,Labview生成的調(diào)用層級如圖3所示。

        圖3 啟動VI的調(diào)用層級示例

        圖3表示“主程序.vi”是啟動VI,它調(diào)用了“讀txt文件.vi”,即后者是前者的子VI。預期的程序運行過程如下:1)出現(xiàn)“主程序.vi”的前面板窗口(圖4 a);2)當用戶點圖4 a上的“退出”按鈕時,程序運行完畢;3)當用戶點擊圖4 a上的“讀txt文件”按鈕時,彈出“讀txt文件.vi”的前面板(圖4 b),文本框“txt文件中的內(nèi)容:”中立即顯示出“to be read.txt”文件中的全部文本。窗口1會一直保持,直至用戶點擊“返回”按鈕后,此窗口關閉并回到窗口2,等待用戶操作。

        圖4 應用程序運行時的窗口

        “讀txt文件.vi”的功能是:從“to be read.txt”讀出文件內(nèi)容,并顯示在其前面板窗口中的文本框“txt文件中的內(nèi)容:”中??梢姀膱D3的調(diào)用層級圖中是不能看出VI是否有讀寫支持文件的操作的。“讀txt文件.vi”的前面板及與讀寫文件相關的框圖程序(源代碼)分別如圖5~6所示,圖6中包含了幫助理解代碼意義的注釋,位于黑色方框內(nèi)。

        為了保證源代碼的可移值性,圖6在獲取txt文件的路徑時不是用其絕對路徑,而是用其相對于“讀txt文件.vi”的相對路徑。在此示例中,“當前VI路徑”函數(shù)的輸出將是“D:示例文件夾子VIs讀txt文件.vi”,那么經(jīng)過“..”運算后,路徑成為“D:示例文件夾子VIs”;此路徑再經(jīng)“..”運算,成為“D:示例文件夾”;“D:示例文件夾”再經(jīng)與“ o be read.txt”運算,就是“D:示例文件夾 o be read.txt”,這剛好是“to be read.txt”文件的絕對路徑。

        在Labview環(huán)境中運行“讀txt文件.vi”,得到的結(jié)果如圖4 b所示,沒有錯誤。

        圖5 “讀txt文件.vi”的前面板

        圖6 “讀txt文件.vi”的部分框圖程序

        為了調(diào)試程序及方便理解下述問題,在“讀txt文件.vi”的前面板上將程序運行的3個中間結(jié)果(圖7)顯示出來,其值與上述分析一致。

        如果將整個“示例文件夾”目錄移動或拷貝到當前電腦或其它電腦任意目錄下,“讀txt文件.vi”與“to be read.txt”的絕對路徑發(fā)生了變化,但由于兩者間的相對路徑?jīng)]有變,所以程序代碼無需修改,這就是源代碼的可移植性。

        圖7 顯示中間結(jié)果的“讀txt文件.vi”前面板

        2 生成應用程序后帶來的問題及原因

        2.1 應用程序?qū)傩栽O置與生成

        此處略去生成應用程序的一般步驟[1],著重提及與支持文件路徑有關的方面。

        下面將生成一個以“主程序.vi”為啟動VI的名為“路徑示例.exe”的可執(zhí)行文件,擬將該可執(zhí)行文件放在“D:uilds應用程序“目錄下。這需要在應用程序?qū)傩栽O置窗口中進行相應設置,見圖8。還需要將“主程序.vi”從圖9所示窗口中的“項目文件”窗格中選中,送入圖中的“啟動VI”窗格;并將這個主程序及其子VI需要的全部支持文件從“項目文件”窗格中選中,送入圖9中的“始終包括”窗格。完成以上操作后的窗口如圖9所示。

        圖8 應用程序目標目錄設置

        圖9 選擇啟動VI與支持文件

        接下來,需要設定支持文件的存放目錄,這里嘗試將它放到與exe文件相同的目錄下(圖10)。

        圖10 支持文件的保存目錄設定界面

        以上設置完成后,點擊應用程序?qū)傩栽O置窗口中的“生成”按鈕讓Labview創(chuàng)建可執(zhí)行文件。生成過程結(jié)束后,目標文件夾下的內(nèi)容如圖11所示??梢?,Labview遵從設置,將exe文件存放到了指定的目錄下,并將支持文件復制到了指定目錄下。

        圖11 應用程序目標目錄下的內(nèi)容

        2.2 生成exe文件后的運行情形

        運行“路徑示例.exe”,彈出如圖4 a所示窗口,點擊窗口中的“讀txt文件”按鈕,會彈出“讀txt文件.vi”的界面(圖12),但與在LabVIEW開發(fā)環(huán)境下運行VI的結(jié)果(圖7)不同,此時文本框“txt文件中的內(nèi)容”中沒有數(shù)據(jù)顯示,且“讀文件錯誤信息”報錯,說明讀文件沒有成功。

        圖12 “路徑示例.exe”文件運行界面

        從圖12所示窗口的“此VI的路徑”控件的值可知,exe調(diào)用的“讀txt文件.vi”的絕對路徑是“D:uilds應用程序路徑示例.exe子VIs讀txt文件.vi”,這表明exe文件是個文件目錄。[2]在如圖6所示的代碼下,“讀文本文件”函數(shù)指向的文件路徑就是圖12中控件所顯示的“D:uilds應用程序路徑示例.exe be read.txt”,而這個文件是不存在的,所以讀文本文件函數(shù)會報錯。

        生成應用程序的過程中,Labview會將支持文件復制到指定目錄下,而磁盤上的全部相關VI會被復制封裝到exe文件中,這個文件內(nèi)甚至會包含子目錄以使復制后各VI之間的相對路徑與原VI間的相對路徑保持一致。這就是圖8中Labview內(nèi)置的“保留磁盤層次結(jié)構”打勾項的含義。

        生成exe后,復制的支持文件與exe文件內(nèi)部讀寫支持文件VI之間的相對路徑關系如果與原始文件間的相對路徑不同,運行exe時讀寫文件處的文件路徑就不存在,從而出現(xiàn)問題。

        此外,在所有可以保持VI的磁盤層次結(jié)構(相對路徑樹結(jié)構)的目錄中,exe文件中的路徑樹是其中路徑深度最淺的。以上述項目為例,圖13均滿足保留磁盤層次結(jié)構的條件,但Labveiw會按照圖13 a生成exe文件中的路徑樹。

        圖13 保留磁盤層次結(jié)構的可執(zhí)行文件內(nèi)的路徑樹

        3 解決方法

        理解了Labview生成應用程序的特點,就可明白:在開發(fā)涉及讀寫支持文件的程序時,如果希望生成exe后運行無誤,關鍵是要使支持文件與讀寫該支持文件的VI間的相對磁盤路徑在生成exe前后保持不變。

        舉例如下:1)在源程序開發(fā)階段,修改文件路徑(圖14),即將支持文件“to be read.txt”移到與“子VIs”目錄并列,見圖1;2)“讀txt文件.vi”的代碼僅需要改動相對路徑字符串,如圖15所示。

        圖14 修改原始文件的路徑

        圖15 修改相對路徑字符串

        圖16 無誤的exe運行結(jié)果

        應用程序?qū)傩栽O置窗口的內(nèi)容保持不變(圖8~10),重新生成exe。這樣得到的應用程序目標目錄下的內(nèi)容從表面上看與圖11一致。但在運行“路徑示例.exe”,并點擊界面上的“讀txt文件”按鈕后,彈出窗口如圖16所示,得到預期結(jié)果。

        4 總結(jié)

        Labview生成的exe文件不僅是應用程序執(zhí)行的入口,還是一個目錄,啟動VI及其調(diào)用的所有Labview中源文件(子VI、菜單文件、控件文件等)都封裝在此目錄中,但支持文件不在其中而是被復制到用戶指定的目錄下。exe目錄中各文件之間的相對路徑關系與對應的源文件在磁盤上的相對路徑關系保持一致,使exe目錄下的路徑樹深度最淺。

        支持文件與讀寫這些支持文件的VI間的相對路徑關系在生成exe后如果發(fā)生變化,生成應用程序后會由于找不相應的文件路徑而出錯。

        在源代碼開發(fā)階段,合理安排文件的磁盤存儲路徑,并在應用程序?qū)傩栽O置時相應設置exe文件與支持文件的存放目錄,可做到在Labview環(huán)境中運行源代碼的效果與運行exe的效果一致。

        [1]佚名.開發(fā)和發(fā)布應用程序[CP/OL].[2013-06].http://zone.ni.com/reference/zhs-XX/help/371361K-0118/lvhowto/develop_distribute_applications/.

        [2]阮奇楨.我和LabVIEW[M].北京:北京航空航天大學出版社,2009:263.

        Problems about Support Files’Relative Path in Application Development with Labview

        Jin Yang
        (School of Automotive Engineering,Hubei University of Automotive Technology,Shiyan 442002,China)

        When developing applications that involve reading from,or writing to,support files like txt, excel,word,mdb etc.format with Labview,developers often encounter a problem where the executive file can’t find the path for the support file while it works well in Labview debugging environment.Taking a simple example,the cause for the phenomena was analyzed and measure to it was provided.

        Labview;relative path;support files;application development

        TP311.52

        A

        1008-5483(2015)01-0064-04

        10.3969/j.issn.1008-5483.2015.01.014

        2014-01-24

        金陽(1975-),女,湖北麻城人,副教授,博士,從事汽車NVH信號處理、整車性能仿真研究。E-mail:jin_yang@163.com

        猜你喜歡
        主程序前面板磁盤
        顏值高和散熱強可以并存3款高品質(zhì)機箱推薦
        電腦報(2021年21期)2021-08-19 17:22:40
        淺談數(shù)控銑削技術代碼程序的嵌套方式研究
        解決Windows磁盤簽名沖突
        電腦愛好者(2019年2期)2019-10-30 03:45:31
        電競潮牌范 航嘉GX520S機箱評測
        電腦報(2019年29期)2019-09-10 07:22:44
        電控冰箱軟件模塊化設計
        日用電器(2019年12期)2019-02-26 01:53:06
        修改磁盤屬性
        時光倒流 換回PotPlayer老圖標
        磁盤組群組及iSCSI Target設置
        創(chuàng)建VSAN群集
        剛撓印制板在機載設備電子機箱中的結(jié)合與應用
        亚洲天堂在线播放| 亚洲国产精品无码aaa片| 国产精品嫩草99av在线| 两个人看的www高清视频中文| 亚洲无码性爱视频在线观看| 日韩精品人妻一区二区三区蜜桃臀| 亚洲一区毛片在线观看| 久久久av精品波多野结衣| 日本亚洲欧美在线观看| 国产成人精品自拍在线观看| 久久精品国产av一级二级三级| 日日碰狠狠添天天爽无码| 久久99精品免费一区二区| 中文字幕一区二区三区精品在线| 国产免费av手机在线观看片| 亚洲国产成人久久综合下载| 国产精品高潮无码毛片| 国语自产啪在线观看对白| 伊人情人色综合网站| 男受被做哭激烈娇喘gv视频| 亚洲国产一区二区三区在线视频| 亚洲天堂一区二区三区| 成人精品一区二区三区电影 | 久久天天躁狠狠躁夜夜96流白浆| 尤物yw午夜国产精品视频| 亚洲中文字幕精品久久a| 在线看片免费人成视频电影 | 亚洲国产91高清在线| 亚洲成熟丰满熟妇高潮xxxxx | 国产成人精品一区二三区在线观看| 波多野结衣av一区二区全免费观看| 国产精自产拍久久久久久蜜| 久久精品国产只有精品96| 蜜桃视频羞羞在线观看| 天天躁日日躁狠狠躁欧美老妇| 精品十八禁免费观看| 高清国产精品一区二区| 国产中文三级全黄| 天天做天天爱天天综合网| 熟女人妻一区二区在线观看| 高级会所技师自拍视频在线|