NI製品ディスカッション

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

フォーマットの違うcsvの読み込み方法

解決済み
解決策を見る

LabVIEW初心者のmanakaと申します。

 

現在、表題の件で悩んでおります。

やりたいことは、csvデータを読み込み、LabVIEW上でグラフ化することです。

 

元々グラフ化していたcsvのフォーマットは、

1行目に項目名

A列に2行目から「2017/2/16 17:00」という形式で日付と時間

B列2行目から数値データが入っているものでした。

これに合わせて、項目部はリストに、時間は時間軸に、データは2行目B列以降を読み込むようにしていました。

 

ところが、この製作したviを他のフォーマットにも対応させなければならなくなり困っています。

新たなフォーマットは、

1行目に項目名

2行目にグラフ化とは関係のない情報

A列に3行目から「2017/2/16」という形式で日付

B列に3行目から「0:00:00」という形式で時間

C列もグラフ化とは関係のない情報

D列3行目から数値データが入っています。

 

データが入っているセルが変わり、日付と時間の入力されるセルが分かれている。

このような状況で、新たなフォーマットと元々のフォーマットを見分けて対応することは可能でしょうか。

 

どなたかお分かりになる方いらっしゃいましたら、教えて頂けたら幸いです。

よろしくお願い致します。

0 件の賞賛
メッセージ1/6
3,695件の閲覧回数
解決策
トピック作成者manakaが受理

csvが必ず旧フォーマットか新フォーマットに従っている、とすれば、

「A列の3行目」は、明確に

旧フォーマットなら、「2017/2/16 17:00」の日時の形式

新フォーマットなら、「2017/2/16」の年月日のみの形式

と思われますので、csv(読む限り内部では一度文字列2D配列で受けていると思われます)のA列の3行目(指標だと2,0)が、「数字/数字/数字」だけで出来ていれば新フォーマット、と解釈するのは如何でしょうか。

 

170216-sample1.png

 

新か旧か、が分かれば、あとはどの列を何行目から読めば良いかは分かっているので。日付と時刻が分かれている新フォーマットでも、2つの列からくっつけるなり、別々に数値を抜き出すなりして、統合した日時データにはできるので。

0 件の賞賛
メッセージ2/6
3,678件の閲覧回数

M.Shiraishi様

 

情報足らずのところまでくみ取っていただき、的確なアドバイスありがとうございます。

まさにこの方法で、希望の動作ができそうです。

分かれたセルの日時データを統合して、該当するデータと組み合わせるあたり、勉強不足の為苦戦しそうですが、なんとか頑張ってみます。

 

また、1つ質問をさせてください。

Read CSV to 2D stringのシーケンスストラクチャ内の白いオブジェクトは、なんという名前でしょうか。

 

宜しくお願い致します。

0 件の賞賛
メッセージ3/6
3,656件の閲覧回数

>>Read CSV to 2D stringのシーケンスストラクチャ内の白いオブジェクトは、なんという名前でしょうか。

 

「白いオブジェクト」というのは、

170216-sample2.png

のほうでしょうか?当方のversionが古い関係で今は違うアイコンかも知れませんが、「ファイルから文字を読み取り」とかいう感じの関数です。ファイルの中身をすべて読み取って、1つの長い文字列として返します。ファイルの関数群の中にあると思います。

 

こちらの

170216-sample3.png

の中身のことであれば、「2次元配列の要素が、空の文字列」になっているものです。これがつながっている「スプレッドシートを2D配列に変換」する関数の左下の端子を右クリックして「作成→定数」とすると、通常は、DBL(0)の2D配列になりますが、それの要素のDBLを右クリックして「入れ換え→文字列→文字列定数」を選ぶと、空の文字列の2D配列になります。

 

いずれでもなかったらすみません・・絵的にどれか示して頂ければ。

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

M.Shiraishi様

 

質問をしておきながら、返信遅くなりました。

「ファイルから文字を読み取り」の方のことでした。

説明不足な質問にもかかわらず、ありがとうございました。

 

今回のアドバイス含め、改めて感謝致します。

 

0 件の賞賛
メッセージ5/6
3,634件の閲覧回数

M.Shiraishi様

 

何度も申し訳ありません。

日付と時刻が分かれている新フォーマットの日時を統合する方法について質問です。

数個の統合は、「指標配列」や「文字列連結」で実現できたのですが、

膨大な数に対応する方法が分かりません。

どのような機能を使うのでしょうか・・・

お返事いただけたら助かります。

0 件の賞賛
メッセージ6/6
3,620件の閲覧回数