VIの保存先のパスを調べる時に、"現在のVIパス"で調べる方法がありますが、 実行形式のEXEファイルにするとパスが変わってしまう場合があります。
例えば "c:\Test\Main.vi" の中で "c:\Test\Sub.vi" が使われている場合。Subの中で、"現在のVIパス"は "c:\Test\Sub.vi"を出します。
ここで、Mainを実行形式にすると、"c:\Test\Main.vi\Sub.vi" となります。
実行形式にする場合には変更が必要になります。
そこで、今回はそのVIが保存されているフォルダを調べるサブVIを作成しました。
実行すると"FolderPass"から保存先のフォルダーが出力されます。
"現在のVIパス"で得られたパスを文字列配列に変換して、"xxx.vi"または、"xxx.exe"を探します。
見つかったらフープを止めて、最後の要素を削除し、"xxx.vi"または、"xxx.exe"が入っているフォルダ名までが配列として得られます。
最後に、文字列配列をパスに戻します。
テスト用VIも作りました。圧縮フォルダーに入っていますのでご利用ください。
添付のプロジェクトでビルドを行い、実行形式にしたサンプルも添付します。圧縮フォルダーに入っていますのでご利用ください。
※実行にはLabVIEW Run-Time Engine 8.6.1が必要です。
NIのダウンロードサイト