自己寫一個TXT文數字檔讓labview讀

data.txt

為什麼我讓labview讀入都只能讀到第一個數 0.2!!
麻煩大大幫忙~

先搞清楚文字檔的格式吧… orz



請問大大為什麼這樣只能讀到第一個數字呢?
我用迴圈產生2d aray再將其存檔,然後再讀都可以讀到全部= =

格式問題

先顯示文字格式使用’'codes display

分析一下

[QUOTE=vicccccc]data.txt

為什麼我讓labview讀入都只能讀到第一個數 0.2!!
麻煩大大幫忙~
[/QUOTE]

這邊討論txt檔之中的奇怪情況,就是你儲存的資料除了第1,2個數值,是用一個半形空白分開’/s’
其他後面的內容都是使用"/s/s"兩個半形空白分開

為了確定是上面的版友們說的,還是下面轉貼的情況,請把你的txt檔案打開,手動把數值之間多的空白都刪成一個空白而已
如果是/s/s存檔的問題的話,那麼應該在你把多餘的空白稍微刪掉之後,他就應該要從前面讀檔了。

如果不是上述的問題 (也就是說Read from Spreadsheet File 其實會自動判斷多個空白,並且讀檔會在End of File才終止,而不會讀到連續空白就終止)
那麼請參考下面的內容:(下面的內容只是參考,是我回答其他人時的東西)


根據我最近開發專案的情況
<span =“apple-tab-span”=“” style=“white-space: pre;”> 1. 請在Write to Spreadsheet File與Read from Spreadsheet File都加上Transpose:T (Ture)。如此你的存檔與讀檔都會是一個一個的Column狀態 (直行柱狀),他使採用Enter(‘\n’)換行。
<span =“Apple-tab-span” style=“white-space:pre”> 存下來的數值類似
0.303
0.291
0.377
0.456
這樣子

<span =“apple-tab-span”=“” style=“white-space:pre”> 2. 在最單純想快速的情況下,Read from Spreadsheet File讀取時記得是選擇 First row (細的橘色線而非粗的橘色線)。若有記得搭配Transpose:T,你會讀取的是First column。

<span =“apple-tab-span”=“” style=“white-space:pre”> 3.<span =“apple-tab-span”=“” style=“white-space:pre”> Q: 為什麼All row與First row在輸出時要分成兩類?如果我要連接All row有什麼不可以?
<span =“apple-tab-span”=“” style=“white-space:pre”> A: 因為對LabVIEW來說,2D array與1D array是根本結構不同的兩種生物,2D array裡面前段額外跟有兩個數值,1D則是額外多一個數值,用來記錄此維度的長度。
<span =“apple-tab-span”=“” style=“white-space:pre”> 單純把1D排成2D不是結構上簡單的直接組合,都要多一些換算處理。你的Case最簡單,因此只要First row + Transpose應該就可以解決只讀到第一個數值的問題了!

下面的圖太小了,看不清楚自己把兩個內建VI叫出來,配合Ctrl+h,只是要看他的接腳名稱而已。看不清楚沒差。

MingYen42221.4853009259


如果你不清楚's'是什麼,他應該是代表space的意思
你碰到的問題八九不離十就是1.兩個半行空白,以及2.存讀檔的轉置(Transpose)問題

如果都讀到0.000那麼則會是雙倍精準度浮點數(Double)的讀取文字格式%.3f位數不夠,可先試著改成%.10f讀取固定小數點形式的小數點後10位的浮點數格式



下面是逐步要進階使用者要考慮的事情:
你要記得當你要在LabVIEW使用陣列時,一定要事先想清楚
1.你是否會有1維陣列串接的需求?

2.你是否會有想要在1維2維間切換儲存的時候?這可能會導致存檔格式的麻煩。

3.如果是較為進階的資料存檔方式,可以使用.ini的存檔法。可以儲存不同資料結構,甚至由使用者輸入不限定title的個別資料。