Chapter Sixty nine

第69話


前回はファイル選択をVIの中で気持ち良く実行できるように考えたのだが、LabVIEWに添付されているプログラムで良く似たものがあることに気がついた人はいただろうか?

Examplesディレクトリにあるreadme.viは、添付されているVIや.llbの説明文を表示するためのVIだ。説明を表示するだけの機能なのでほとんど気にもかけたことがなく、ダイアグラムの中を見たこともなかった。ところが、ファイル操作に関しては第一級の手本となるプログラムのようだ。このviの価値は、自分で工夫して困った経験があると輝いててくる。

サブVIを組み合わせてシンプルな構造できれいに作っている。余談だが、階層ウインドウはVI名も一度に表示してくれると便利だと思うが、どうだろうか?

 

platform.viはLabVIEWが使われているプラットフォームを返してくれるviだ。プラットフォームの識別をパスのセパレータの違いで行っている点が面白い。
Build Path関数は使われているプラットフォーム毎にふさわしいセパレータを作るので、そのセパレータを見ればプラットフォームが分かるという仕組みだ。

ルートディレクトリの表示をMacではDesktop、PCではDrives、Unixでは\のように気を使って変えているのだ。Unixではファイル名の大文字小文字を区別しているので、その点も配慮している。

これらのサブVIは実行ごとに出力が異なるわけではないので、ホワイルループのシフトレジスタを使って実質的に一度しか実行しないような構造になっている。2回目以降の実行時はブールのシフトレジスタがTrueになっているので、プログラムが組まれているFalseケースを実行せずに、出力はもう一つのシフトレジスタに記憶されている値が出力される。

前回のプログラムを書いている時点ではList Directory関数にEmpty Pathを接続すればドライブが表示されることに気がつかなかったり、リストがダブルクリックに対応していることに気がつかなかったために妙にプログラムを複雑にしてしまった。

このreadMe.viをもとにすれば楽にVIが作れそうだ。

素性の良いプログラムは改造するのも比較的簡単だ。

readme.viからカテゴリの説明、選択項目の説明に関する部分を削除してFileWindow.viに変更しよう。

llbファイルが通常のフォルダと同様に動作しているのはopen selection.viでllbファイルが選ばれたときにフォルダと同様な動作を行っているからなので、zipの場合の処理も追加しよう。

build file list.viではList Directory関数で得られた情報をリストに表示できる形に整形している。zipで同様の処理をするため、List Directory関数を拡張してzipファイルが入ってきたとき圧縮されたファイル名を出力するように変更した。

zipファイルをリストに表示するときに先頭に表示するシンボルとし適当なアイコンを選んでget path symbol.viに処理を追加した。

これで一応、小さなzipファイルであればllbファイルと同様に圧縮されたファイルのファイル名を表示できるようになった。構想がまとまらず時間がかかっていて、だらだら作り始めてほぼ終わりかけていたところだったが、ちょうど良いプログラム例に気がついて急きょ方針変更した。

 

readme.viは良くできているから一度じっくり見てみると為になると思うよ。

 

See you!

Nigel Yamaguchi


戻る