この記事で扱っていること
- ファイルを古い順にソートする方法
を紹介しています。
注意:すべてのエラーを確認しているわけではないので、記事の内容を実装する際には自己責任でお願いします。また、エラー配線は適当な部分があるので適宜修正してください。
LabVIEWでファイルを扱う際の関数はファイルI/Oパレットにまとまっており、一通りのファイル操作に必要な機能は既に用意されています。
特定のフォルダを指定してその中身のファイル(やフォルダ)のパスを配列表示させることもできますが、ソートの基準はファイル名のアルファベット順となります。
ソートの基準がファイル名ではなく古いファイルから順にソートしたいという場合もあると思うので、本記事でその一例を紹介しています。
どんな結果になるか
フロントパネルはいたってシンプルで、日付順にソートしたいファイルが含まれたフォルダパスを入力し、結果を表示するためのファイルパス表示器の配列を用意しています。
サブVIとしても使えるようなイメージです。
試しに、ファイルをランダムな順番で生成するプログラムでファイルを作成し、これらのファイルが入っているフォルダを指定しました。
結果、作成された順にソートされているのがわかります。
プログラムの構造
構造はいたってシンプルで、ソート対象のファイルたちの日付情報を抽出しこの日付情報をソート、その後元々の配列からソート後の配列要素が何番目にあるかを1D配列検索で調べて、ファイルパス制御器に対する指標指示として使用します。
1D配列ソートを時間情報の配列に対して適用すれば、これは日付時間の古い順にソートしてくれることを利用します。
なお、ファイル/ディレクトリ情報の関数は、ファイルI/Oパレットの上級ファイル関数にあります。
ファイルサイズ順にソートする
上で紹介したのはファイルが作成された時間が古い順のソートでしたが、配線を変えればファイルサイズの順にソートさせるプログラムも簡単に作れます。
サブVIとして使う場合には昇順降順選べるのが便利
上で紹介した、古い順のソートやサイズの小さい順のソート、これらはそのままでも使用できますが、サブVIとして使えるようにしておくと便利です。
ただ、さらに便利にするために、昇順か降順かの設定ができるようにしておくことで使い勝手が増すと思います。
配列の順番をひっくり返す、1D配列反転を使えば簡単にできるので、サブVIとして使用する場合にはこれがオススメです。
本記事ではファイルを古い順にソートする方法を紹介しました。
LabVIEWにおける配列操作は、Forループの自動指標付け機能と組み合わせることで個々の配列要素に対する繰り返し処理がとても簡単にできますが、その繰り返し処理の順番は配列の要素0から始まるため、配列要素の順番に気を付けないといけない場合があります。
ソートの基準は色々と考えられると思いますので、本記事で紹介した方法が役に立てばうれしいです。
ここまで読んでいただきありがとうございました。
コメント