在Windows內的許多應用程式,例如小畫家(Painter)、記事本(Notepad)、計算機(Calculator)...等,均可以同時重複開啟。但若是以 LabVIEW 封裝成的執行檔(executable),似乎同一時間內只能夠開啟一個,有沒有辦法可以改變這項設定呢?
做法其實很簡單,由 LabVIEW 封裝的執行檔,在同一層資料夾內都有另一個檔名相同,但副檔名是 .ini 的組態檔,如圖一所示:
圖一
在前兩篇文章〈動態地讓Array Size增長 - Part 1〉與〈動態地讓Array Size增長 - Part 2〉中,介紹了如果不能夠事先知道陣列(array)大小,可以使用Shift Register + Build Array 來動態地讓陣列長大。這個技巧雖然簡潔易用,但有一個缺點:記憶體使用效率不佳。
圖一:動態成長手法
以圖一為例,當我們使用Build Array元件將一個長度為5的1D Array與獨立元素結合成一個長度為6的1D Array時,LabVIEW除了原本長度為5的1D Array外,會需要再向作業系統請求一個新的記憶體位置,來存放長度為6的1D Array。並且把新的這個Array存入Shift Register內,並將舊的Array刪除;若使用動態成長手法讓Build Array執行了一萬次,那麼請求新記憶體位置與刪除舊記憶體位置的動作也要執行一萬次。
在上一篇文章〈動態地讓Array Size增長 - Part 1〉中,介紹了如何利用shift register與Build Array的技巧讓一個矩陣能根據資料量動態地成長,而毋須事先配置;並且介紹了LabVIEW從2012版開始,提供的Conditional Tunnel功能,在某些場合可以替代shift register與Build Array來達到動態成長的功能。
這次我們繼續介紹利用shift register搭配Build Array的手法,來進行不同的應用:
圖一
在圖一這個應用中,程式須判斷使用者輸入的字串是否已經存在於系統資料庫中,如果沒有的話,便將這個字串加入資料庫中。解法請參考下圖: