NI製品ディスカッション

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

Labviewについて

解決済み
解決策を見る

初心者です。

 

以前投稿させていただいた者ですが、別の問題でつまずいたので新しく質問させていただきます。

 

CSVデータのある列を指定範囲で抽出したいという事でなんとかVIを組めました。

 

 

ただし、データ量が少ないCSVだと機能するのですが、データ量が多いCSVだと機能しません。

 

 

この解決策を教えていただきたいです。

すべてをダウンロード
0 件の賞賛
メッセージ1/2
1,786件の閲覧回数
解決策
トピック作成者ikunoriが受理

はじめまして。

viを拝見させていただきました。

 

問題の原因は、

ブロックダイアグラムの下の方で

削除すべき個数分を、初めと終わりから削除することで指定範囲を抽出しようとしている点であると考えられます。

 

対象の列の数値が昇順に並んでいればこれで問題はないのですが、(整数例.csvは昇順)

数値がばらばらに並んでいる状況ですと、

初めと終わりから切り取っているだけで、削除すべきデータを削除出来ておりません。

 

解決策としては、ikunoriさんも用いていらっしゃる、

Forループでのデータを判別している条件付きのループ出力トンネルを用います。

 

ある列の値が範囲内か否かを判定し、trueの場合、その行のデータ全体を出力することで、

データ全体を一つのForループを用いて抽出することができます。

 

VIを作成いたしましたのでz、上記の内容をご確認いただければと思います。

 

また質問とは関係ない内容かもしれませんが、

読み取るファイルのパスを指定することで、毎回ファイルを選択する手間を省くことができます。

(添付させていただいたviでの書き方では、Excelファイルとviは同じフォルダ内にある必要があります。)

 

この点もご確認いただければと思います。

よろしくお願いします。

すべてをダウンロード
0 件の賞賛
メッセージ2/2
1,721件の閲覧回数