NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

未保存状態のVIの見分け方

解決済み
解決策を見る

いつもお世話になります。

 

ただいま、プログラムの修正を行っているのですが

プロジェクト上からでもエクスプローラ上からでも良いのですが、未保存のアスタリスクがついた状態のVIを見分ける方法は無いでしょうか

 

というのも多数のVIで用いているクラスタの構造が変わったため、そのクラスタを使用しているVIが未保存状態になってしまったのですが

 

「未保存状態のVIかどうか」をそのVIを一度開かずに判別する方法はあるのでしょうか。

(エクスプローラ上でタイムスタンプを確認すればいいと思ったのですが、未保存だと古いままになるようです。)

(また、未保存VIの状態でビルドしても変更後のものとして正常に動作するのは不思議に思いました)

 

以上です、よろしくお願い致します。

0 件の賞賛
メッセージ1/7
4,492件の閲覧回数

こんにちは、

 

未保存VIはプロジェクトからCtrl+Shift+Wを押すと見ることができます。

「すべてのウィンドウ」のタイトルにアスタリスクが付いている未保存VIを確認できます。

 

将来的にクラスタの内容を変更する可能性がある場合はクラスタをタイプ定義に指定することをお勧めします。

クラスタのタイプ定義を使うことでプロジェクトツリーから見ることが出来ますし、

タイプ定義に変更を加えると、そのタイプ定義を使用するVIに自動的に変更が反映されます。

0 件の賞賛
メッセージ2/7
4,470件の閲覧回数

dragon1様、返信ありがとうございます

 

さっそく試してみたのですが、開いているウィンドウの種類を表示するウィンドウが出てきました。

ちょっとこれは質問させていただいたものと違うようです。

 

今回変更したクラスタはタイプ定義されているのですが、

このプログラムではそのクラスタを共通データとして使用するため

①この共通データを取得するGET_クラスタ.VI

②この共通データに値をセットするSET_クラスタ.VI

が多数のVIで使用されています。

 

そのため、クラスタの変更に伴い①②のVIを呼び出しているVIにアスタリスクが付きましたので

それらのVIを知ることができたらと思います。

 

Ctrl+Shift+Wのショートカット機能も知らなかったので勉強になりました、ありがとうございました。

0 件の賞賛
メッセージ3/7
4,466件の閲覧回数
解決策
受理者 toffy

toffy様、迅速な返事ありがとうございます。

 

申し訳ございません。仰るとおりにCtrl+Shift+Wは開いているウィンドウを表示します。

 

VIにアスタリスク(変更が保存されていない)が付いているかを確認する方法としては下記があります:
プロジェクトに含まれているVIの表示からVI階層で変更したGETクラスタ.viとSETクラスタ.viがどのVIに繋がっているか確認できます。
VI階層のCtrl+F(検索)で検索項目のテキストに * を入力します。

さらに検索範囲に階層ウィンドウをチェックし検索を行うと見えます。()

 

ちなみに、使われているプロジェクトにはVIが何個位ありますか?

 

差し支えなければ、なぜ変更が保存されていないVIを特定されようとしているのでしょうか?
もし一度未保存のVIを保存されたいのであれば、ファイル→すべて保存 で保存可能です。

 

何かエラーなど発生しているのでしょうか?

 

メッセージ4/7
4,448件の閲覧回数

dragon1様 返信ありがとうございました

 

さっそく試してみたところ、未保存のVIを検索することができました。ありがとうございます。

 

 

以下お答えできる範囲で回答させていただきます。

>ちなみに、使われているプロジェクトにはVIが何個位ありますか?

とても多いため正確に数えるのは難しいですが、1000前後はあります。 

 

>差し支えなければ、なぜ変更が保存されていないVIを特定されようとしているのでしょうか?
>もし一度未保存のVIを保存されたいのであれば、ファイル→すべて保存 で保存可能です

今回、プログラムの修正と修正したVIの試験もすることになっています。

そこでタイムスタンプで前回版から修正影響があったかどうかを判断しようとしたのですが、

(アスタリスクが付いていて)未保存のVIはタイムスタンプが更新されていないことに気づきました

(未保存なので当たり前といえば当たり前なのですが、ビルドしたexeは正常に動作します)。

 

そこで試験するVIを漏らさないために特定したかったのですが「すべて保存」で保障されるのですね。

(本当はもう一つ理由があるのですが、こちらについてはお答えできない範囲に入りますので申し訳ありません)

 

dragon1様、ありがとうございました。

0 件の賞賛
メッセージ5/7
4,443件の閲覧回数

こんにちは。

 

ちなみにVI のソースコードとコンパイルされたオブジェクトを分離することによって、

直接編集していないVI の未保存状態になることを防ぐことができます。クラスタの内容を編集したときに、そのクラスタを使用しているVI すべてが未保存状態になったら管理が面倒ですものね。

詳細については下記リンクを見てみてください。

 

コンパイルコードをVIおよび他のファイルタイプから分離する

 

コンパイルコードをVIおよびその他のファイルタイプから分離することによりソース管理を促進する

 

ちょっと面倒なのが、タイプ定義されたクラスタや列挙体の具体的な件に関しては、LabVIEW 2014 からじゃないと上記の効果が反映されないみたいです。

 

0 件の賞賛
メッセージ6/7
4,423件の閲覧回数

こんにちは、doradorachan様

 

LabViewはVIのソースコードの他にコンパイルコードを持っていたのですね、

これで「未保存のVIがある状態でビルド」したときに正常動作する現象に納得する事ができました。

 

教えて頂いたリンクの方法を使えば、変更の影響を出したくない範囲を設定できるのですね。

 

勉強になります、ありがとうございました。

0 件の賞賛
メッセージ7/7
4,400件の閲覧回数