バリアントデータを処理する
- 更新日2025-08-27
- 4分で読める
一般的な方法で多くの異なるタイプのデータを処理するVIが必要となることがあります。各特定データタイプ用に異なるVIを書くこともありますが、VIのコピーは、1つのVIを変更するとすべてのVIを変更するように覚えておく必要があるため、管理が大変です。こうした状況の解決方法の1つとして、バリアントデータタイプがあります。バリアントデータタイプは、LabVIEWのその他すべてのデータタイプの汎用コンテナです。他のデータをバリアントに変換する場合、バリアントはデータとそのデータの元のデータタイプを保存します。これにより、後からそのバリアントデータを正しく元のデータに変換し直すことができます。たとえば、文字列データをバリアントに変換する場合、バリアントは文字列のテキスト、およびこのデータが元は (パス、配列のバイト、その他のLabVIEWタイプとは異なる) 文字列であることを示す表示器を保存します。
バリアント関数を使用して、バリアントデータの作成や操作を実行します。任意のLabVIEWのデータタイプをバリアントデータタイプに変換して、バリアントデータを他のVIや関数で使用できます。VIを取得:コネクタペーンデータタイプメソッドおよびコネクタペーンデータタイププロパティなどのいくつかのプロパティおよびメソッドは、データタイプをバリアントとして返します。データタイプ解析VIを使用して、バリアントのデータタイプおよびそのデータタイプのタイプ情報を取得することができます。また、バリアントのデータタイプが特定のデータタイプと一致しているかチェックすることもできます。
データの転送や格納、不明なデバイスへの読み書き、または異なる制御器のセットでの操作実行など、データタイプのデータを個別に操作することが重要な場合はバリアントデータタイプを使用します。
たとえば、バリアントデータタイプを必要とするActiveXオブジェクトで作業する場合は、このバリアントデータタイプを使用します。また、制御器リファレンスとともにバリアントデータタイプを使用して、プログラム的に選択した制御器の値の読み取りまたは変更を行うこともできます。
「文字列に平坦化」関数を使用して、データタイプを文字列データタイプに変換し、タイプとは無関係にデータを表すことができます。プロトコルが文字列のみを解釈するので、TCP/IPを使用してデータを転送する場合にはデータを文字列に平坦化すると便利です。ただし、変換するデータタイプに元のデータタイプが一致しない場合、LabVIEWでは平坦化データを強制できないので、平坦化データの使用には限界があります。ActiveXのバリアントデータは平坦化できません。また、平坦化された整数を拡張精度浮動小数点数として非平坦化しようとすると操作に失敗します。
バリアントデータタイプを使用するもう1つの利点は、データの属性を格納できる機能です。属性とは、ユーザにより定義され、バリアントデータタイプに格納されるデータに関する情報です。たとえば、データの1つが作成された時間を知りたい場合は、バリアントデータとしてデータを格納し、時間という名前で属性を追加して、時間文字列を格納できます。属性データは任意のタイプを入力できます。特定の属性でデータをソートしたり、デバイスやデータを生成したアプリケーションを識別したり、または特定の属性でそのバリアントのみのデータをフィルタ処理する場合には、バリアント属性を使用します。