資料欄位自動排序矩陣2(之前的進不去了?)

ColSort.llb

非常感謝,這個範例程式非常好,但我有兩個小疑問?

1.這個VI,從主VI裡面進不去(看不到裡面的內碼),反而要從外面進去,請問這是什麼原因?(我的版本2009)

2.數的部份,從小到大,123<24(它好像只比較首位數),請問這方面的問題該如何做修改?

在這邊我有把DONWANG寫的註解貼在程式裡面,分享給大家,

另外打問號的地方是我不知道其中裡面的4個loop各分別執行什麼事

比較無法跟註解的1234(打勾項)搭配在一起,要再請教一下

感謝^^

TEST0930(PS).vi

我只做一個字串的排序示範而已

在這個case裡 我只做1個SubVI, 這是字串排序
而且我將這個case設為default,所以預設將全部執行這種排序

你可以新增一個case來做數值的排序, 並做一個數值排序的SubVI, 如圖
而這個SubVI你可以由"名字"這個case裡的VI修改一下即可

  
改成
轉換成數值來排序即可

所以不同的欄位型態的排序, 你只要增加該欄位的case, 並制做一個該型態的排序方式的SubVI, 例如:時間排序, 如此並不用改動其它程式

圖文並茂,解釋得非常清楚呢,

馬上動手做
<span =“apple-style-span” style="font-size: 12px; line-height: 18px; -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; "><span =“bold” style="font-family: verdana, arial, helvetica, sans-serif; color: rgb(0, 0, 0); font-size: 12px; font-weight: bold; ">感謝orange1108的指導呢^^

<span =“apple-style-span” style="font-size: 16px; line-height: 24px; ">

<span =“apple-style-span” style="font-size: 16px; line-height: 24px; ">那順便請問:第一點的問題是版本問題嗎?
1.這個VI,從主VI裡面進不去(看不到裡面的內碼),反而要從外面進去,請問這是什麼原因?(我的版本2009)

這些註解就是說明1[0..2]頁,這頁就是比較兩個(列,欄)的資料及處裡兩列交換,當按下"姓名"的位置(-1,0),就會比較(0,0)~(4,0)的資料並將其排序(整列交換).按下"年齡"的位置(-1,1),就會比較(0,1)~(4,1)的資料並將其排序(整列交換).

若還是不了解直接去看程式執行的狀況,如下方第2圖在程式特定位置點上紅點(建議圖上所示位置).執行程式後當按下"姓名"等位置後程式會停止,再開啟Highlight(圖上像燈泡的圖示),再繼續RUN(按燈泡的左邊),就可觀察程式執行的狀況.

![](upload://iKzIQwVanRdfRQntbMa1U53lQnx.jpeg)

![](upload://wZAcBDhduol1lOUfFd5Ltk496MR.jpeg)

![|513x423](upload://4mB62utenN1iopcmZbF4jzJv0WJ.jpeg)

恩 謝謝,那請問"一開始減一"、中間"兩個i相加",其目的為何呢?

外圈-1的目的:若資料有5筆(丁一,陳二,張三,李四,王五,5列),我們只要找出最小(或大),第2,第3,第4,也就是找4次,計算方式是(列數)-1.

中間相減的目的:找最小(或大)時第0列要與第1~4列比所以要找4次(計算方式是4-0),找第2時第1列要與第2~4列比所以要找3次(計算方式是4-1),...,找第4時第3列要與第4列比所以要找1次(計算方式是4-3).

裡面相加的目的:第0列要與第與第1~4列比,計算方式是0+([0~3]+1),第1列要與第與第2~4列比,計算方式是1+([0~2]+1),第2列要與第與第3~4列比,計算方式是0+([0~1]+1),第3列要與第與第4列比,計算方式是0+(0+1).

 

恩 非常感謝,這樣程式的邏輯就明白了^^

謝謝您