作者Juten ( 九 天)
看板Visual_Basic
標題[VB6 ] 關於資料比對
時間Thu Feb 19 14:48:03 2009
小弟是初心者
因為需求最近寫了一個程式
需要做個資料比對 Text1與ListA&B
text1中的資料會一直更新與固定資料的list比較
若Text的資料中出現了List裡面的資料則隱藏的圖案顯示
比如Text內含有ListA裡的資料則屬於ListA的圖會顯示
可是搞了很久還是不懂
所以來提個問題
由於text1的資料會出現很多筆舉例如下
2009/02/12 XX:XX:XX find
A0123045650
D2103105031 等...
然後有建立兩個TXT檔為AID.TXT及BID.TXT
分別從FROM_LOAD內寫入讀取至ListA和ListB
內容寫為
A0230503511
A5023035410 等...(A,B檔都是只寫這樣)
那要怎麼做資料比對?
直接寫成
If Text1.Text = List1.List(ListIndex) Then
Shape2.Visible = True '圖2顯示 表示含有A檔ID
Else
Shape2.Visible = False
End If
If Text1.Text = List2.List(ListIndex) Then
Shape3.Visible = True '圖3顯示 表示含有B檔ID
Else
Shape3.Visible = False
End If
好像是直接把Text1裡全部的字跟List裡的全部做比對
有辦法把Text內的ID資料做A,B List內的ID一項一項比較嗎?
經過一番閱讀
修改了程式內容為
For i = 0 To List1.ListCount - 1
List1.ListIndex = i
If InStr(Text1.Text, List1.List(i)) Then
Shape2.Visible = True
Else
Shape2.Visible = False
End If
Next i
For j = 0 To List2.ListCount - 1
List2.ListIndex = j
If InStr(Text1.Text, List2.List(j)) Then
Shape3.Visible = True
Else
Shape3.Visible = False
End If
Next j
發現是有點功用了
可是...
只能比對List裡面的最後一筆
不能每一筆都比對
是不是有缺了哪些語言呢
以上
煩請各位大大不吝指教 謝謝
不好意思描述的不夠清楚
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.124.45.205
※ 編輯: Juten 來自: 140.124.45.205 (02/19 15:00)
※ 編輯: Juten 來自: 140.124.45.205 (02/19 21:23)
1F:→ MOONRAKER:你講清楚一點,到底是誰要跟誰比,比了以後要怎樣 02/19 22:06
2F:→ Juten:喔~ 對不起 是讀出來後在TEXT裡的資料要跟listA和B的比 02/19 22:44
※ 編輯: Juten 來自: 140.124.45.205 (02/19 22:45)
※ 編輯: Juten 來自: 140.124.45.205 (02/19 22:51)
3F:→ MOONRAKER:用一個迴圈抓listA的記錄 裡面包另一個迴圈讀text的資料 02/19 23:43
4F:→ MOONRAKER:跟他比對 這樣用兩層迴圈是最簡單有效的方法 02/19 23:43
5F:→ MOONRAKER:還有listB 就再做一次 02/19 23:44
6F:→ MOONRAKER:這是最簡單的方法 其他啥bsearch法 hash法 datatable法 02/19 23:57
7F:→ MOONRAKER:等會走路了再學飛不遲 02/19 23:58
8F:→ Juten:樓上大大可以舉個例子嗎? 小弟加上Do Loop後會盪耶... 02/20 02:35
9F:→ fumizuki:是不是沒寫離開迴圈的條件 或條件不會成立... 02/20 12:33
10F:→ Juten:中間嘗試加入了 Exit For 就可以了 02/20 13:41