日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

labview当前vi路径_对于LabVIEW程序为什么生成EXE后,涉及到路径的输出不正确了?...

發布時間:2023/12/15 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 labview当前vi路径_对于LabVIEW程序为什么生成EXE后,涉及到路径的输出不正确了?... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題提出

使用LabVIEW編寫應用程序時,相信很多小伙伴遇到過這樣的問題,在VI程序中涉及到路徑的問題時,比如在程序開始運行時,需要自動讀取當前目錄下某個文件的內容作為參數的初始配置,或者自動加載當前目錄下某個子文件夾下所有的圖片文件作為圖標使用時,在這種情況下,我們一般使用LabVIEW中提供的“當前VI路徑”函數獲取當前程序的完整路徑,進而得到當前程序所在的文件夾路徑,在程序的開發環境下即生成EXE程序前,程序運行一切良好,但是當生成可執行的EXE程序后再運行,會提示路徑不正確,找不到待讀取或加載的文件。

這是怎么回事呢?

問題分析

其實,不同于其它的編程語言,在LabVIEW中使用“當前VI路徑”函數獲取當前程序的完整路徑時,生成EXE前后其返回值是不一樣的。

下面通過一個例子進行說明,例子前面板如下圖所示:

這個程序比較簡單,就是在前面板上顯示獲取到的當前程序的完整路徑和其所在的文件夾,其程序框圖如下所示:

在上面程序框圖中,使用“當前VI路徑”函數獲取當前程序的完整路徑,然后使用“拆分路徑”函數獲取得到當前程序所在的文件夾。

將該程序保存在“E:est”目錄下,然后生成EXE程序“Main.exe”,將該EXE程序也放在“E:est”目錄下。

上面前面板圖中顯示了生成EXE程序前的運行情況,運行結果一切正常,但生成EXE后運行“Main.exe”程序時,其結果如下圖所示:

相對于生成EXE前,當前程序所在的文件夾由“E:est”變成了“E:estMain.exe”,當前程序的完整路徑由“E:estMain.vi”變成了“E:estMain.exeMain.vi”,可見,在路徑目錄中,多了一級Main.exe,很明顯,相同的程序代碼在同一個目錄下,EXE生成前后當前主程序所在的路徑返回值發生了變化。

這種在程序中使用相對路徑時,無論是在開發環境下運行還是在EXE情況下運行,都需要在不修改代碼的前提下,能夠正確得到當前主程序所在的文件夾名稱,那么怎樣修改程序實現我們的目的呢?

解決方案

對上面的程序框圖稍作修改,如下圖所示:

在獲致當前程序所在文件夾時,其思路是,將“當前VI路徑”函數的返回值(路徑類型)轉換為字符串后進行判斷,然后分別處理。判斷方法為使用“匹配模式”函數判斷字符串中是否存在“.exe”,該函數的返回參數“匹配后偏移量”會返回其索引位置,該值在不同的情況下會有所不同。

若存在“.exe”,該值會大于0,對應于EXE模式下運行,此時需將傳入的路徑進行兩次拆分路徑處理。

若不存在“.exe”,則該值為-1,對應于開發環境下運行,此時只需將傳入的路徑進行一次拆分路徑處理即可。

將修改后的程序生成EXE程序后,運行結果如下圖所示:

可見,修改程序后無論是在開發環境下還是在EXE程序運行模式下,都能得到正確的當前程序所在的路徑。

總結

對于LabVIEW中如何處理生成EXE程序前后的路徑不一致問題,本文給出了一種解決方案,當然,還有很多種其它方案,相比來說,這是一種最簡單、易行的實現方法。

如果你覺得這篇文章對你有用的話,關注+收藏+點贊吧。

總結

以上是生活随笔為你收集整理的labview当前vi路径_对于LabVIEW程序为什么生成EXE后,涉及到路径的输出不正确了?...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。