NI製品ディスカッション

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

テーブルルックアップVIについて

解決済み
解決策を見る

添付しましたデータテーブルのルックアップを行うVIについて困っています。

VI中の実データは予め作成されたCSVファイル中のデータをコピーしたもので、各行はLF(10進"10")で改行されています。

やりたいことは「任意に指定した行のデータのみを取り出したい」ことです。例えば、実データの中の2番目のデータ<194.4>を指定して取り出したり、3番目のデータ<148.99>を指定して取り出したいのですが、上手くプログラムできません。

各行のデータは5桁であったり、少数点以下2桁であったり、負の符号付であったりします。

また取り出したデータは文字コードである必要があります。

どのようにプログラムしたら良いか、ご教示ください。よろしくお願いします。

 

 

0 件の賞賛
メッセージ1/4
1,840件の閲覧回数
解決策
トピック作成者ショウエンジが受理

平素よりNI製品をご愛顧頂きありがとうございます。
日本ナショナルインスツルメンツ技術部の上野です。

 

添付いただいたVIにある文字列定数から指定したデータを取り出すには、スプレッドシート文字列を配列に変換関数と指標配列関数を使用する方法が一番シンプルな方法だと思います。作成例は以下のとおりですs。

 

SS5.png

 

スプレッドシート文字列を配列に変換関数は、配列タイプに配線したデータタイプに応じて、スプレッドシート文字列(改行を含む文字列)を配列に変換します。この関数のデリミタ入力には改行定数を配線することで、改行で区切られた文字列が各配列要素に出力されます。あとは、指標配列関数で抽出したいデータを指定するだけです。

 

もしCSVファイルをプログラム的に読み取れば、同じような処理で抽出することができます。

SS6.png

 

0 件の賞賛
メッセージ2/4
1,791件の閲覧回数
解決策
トピック作成者ショウエンジが受理

大変お世話になります

教えていただいた「シート文字列を配列に変換関数と指標配列関数を使用する方法」で希望通りの結果が得られました。しかも複数のデータルックアップが同時にできて大変満足しています。

 もう一つご提示いただいたCSVファイルを参照する方法をいままで取っていましたが、他のPCへexeファイルをインストールして使うと、CSVファイルのホルダ名が変わってしまうため「ユーザから使いにくい」との声がありましたが、これで改良ができました。

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

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

無事解決したようで何よりです。また何かございましたらご投稿いただけると幸いです。今後ともよろしくお願い申し上げます。

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