10-12-2019 04:04 AM
添付しましたデータテーブルのルックアップを行うVIについて困っています。
VI中の実データは予め作成されたCSVファイル中のデータをコピーしたもので、各行はLF(10進"10")で改行されています。
やりたいことは「任意に指定した行のデータのみを取り出したい」ことです。例えば、実データの中の2番目のデータ<194.4>を指定して取り出したり、3番目のデータ<148.99>を指定して取り出したいのですが、上手くプログラムできません。
各行のデータは5桁であったり、少数点以下2桁であったり、負の符号付であったりします。
また取り出したデータは文字コードである必要があります。
どのようにプログラムしたら良いか、ご教示ください。よろしくお願いします。
解決済! 解決策の投稿を見る。
10-12-2019 03:11 PM
平素よりNI製品をご愛顧頂きありがとうございます。
日本ナショナルインスツルメンツ技術部の上野です。
添付いただいたVIにある文字列定数から指定したデータを取り出すには、スプレッドシート文字列を配列に変換関数と指標配列関数を使用する方法が一番シンプルな方法だと思います。作成例は以下のとおりですs。
スプレッドシート文字列を配列に変換関数は、配列タイプに配線したデータタイプに応じて、スプレッドシート文字列(改行を含む文字列)を配列に変換します。この関数のデリミタ入力には改行定数を配線することで、改行で区切られた文字列が各配列要素に出力されます。あとは、指標配列関数で抽出したいデータを指定するだけです。
もしCSVファイルをプログラム的に読み取れば、同じような処理で抽出することができます。
10-16-2019 12:43 AM
大変お世話になります。
教えていただいた「シート文字列を配列に変換関数と指標配列関数を使用する方法」で希望通りの結果が得られました。しかも複数のデータルックアップが同時にできて大変満足しています。
もう一つご提示いただいたCSVファイルを参照する方法をいままで取っていましたが、他のPCへexeファイルをインストールして使うと、CSVファイルのホルダ名が変わってしまうため「ユーザから使いにくい」との声がありましたが、これで改良ができました。
ありがとうございました。
10-16-2019 12:47 AM
無事解決したようで何よりです。また何かございましたらご投稿いただけると幸いです。今後ともよろしくお願い申し上げます。