How To - 如何存取綜合型態資料?

這篇依舊是講解存檔的問題。

當我們需要儲存一筆資料,但他可能是數種資料型態,甚或是一個叢集,這個時候我們又可以用什麼元件來快速滿足我們的需求呢?


圖片程式版本:LabVIEW 2013


首先介紹的是 block diagram >> Programming >> File I/O >> Format into File 這一個元件


這個元件可以綜合性的儲存以下資料類型:

  • 所有的數值類型(Numeric)
  • 布林代數(Boolean)
  • 字串(String)
  • 路徑(Path)
  • 時間(Timestamp)


我們需要做的只有將元件拉出來,增加輸入節點到你需要的數量,再將資料接線到輸入節點即可。節點會自動根據你的資料類型進行變換。但不支援除了上述以外的資料型態資料,以及矩陣類型或是叢集類型的資料

接下來只需要執行該程式,即可將輸入的資料進行儲存,例如存成 1.txt ,接著利用記事本將該檔案以純文字形式開啟:


就可以看到這些資料被該元件自動轉換為字串形式來存檔。

同樣的我們也可以利用 block diagram >> Programming >> File I/O >> Scan from File 來讀取檔案。


這個元件的左邊的輸入節點是依序定義每個輸出節點的資料型態,所以需要正確的依序設定才可以正確地讀出資料,最簡單的方式就是將各個資烙型態直接輸入左邊的節點


如此一來,右邊的資料節點就可以參考左邊的資料型態進行輸出。
或是直接點擊元件可以呼叫出設定精靈


在這裡可以依據各個節點,直接設定不同的輸出資料型態:


不過這個方法似乎無法產生布林代數或是路徑的輸出節點(?)

HR

如果很不幸的,我們需要儲存的資料型態正是混雜著叢集或是陣列的時候又該怎麼辦?
這時候我們就可以利用這個元件 block diagram >> Programming >> File I/O >> Write to Binary File 來滿足我們的需求。


我們只需要將我們的資料完整的做成叢集,接下來輸入到 data 的接腳即可。


例如上圖,最後輸入的叢集包含了陣列、各種資料型態以及另一個子叢集。
接著我們可以使用 block diagram >> Programming >> File I/O >> Read from Binary File 來進行檔案的讀取。


這邊唯一特別注意的,就是必須告訴這個元件我們定義讀出的資料型態為何,因此必須將該資料型態接入 data type 的接腳,才能產出正確的輸出資料


個人習慣將上述介紹的這幾類元件輸入及輸出皆製作為 subVI ,如此就不用反覆的定義資料型態,同時也可以節省版面空間,一舉兩得。

如此就可以簡單的操作各種資料型態,相當簡單吧!