我有这样的程序,List1里放的是从数据库中读出来的数据,List2里是从磁盘扫描出来的数据,现在我想比较两个数据,以List1的数据为标准,如果List2里没有和他相同的数据,那么就把List1中的数据记录下来放在List3里.
给个例子:
List1里有a,b,c,d,e
List2里有a,b,e,f,g
那么我就是要在List3里显示c,d,e
请问该怎么写这段程序?谢谢!

解决方案 »

  1.   

    我写了一段程序如下:
               For j = 0 To List1.ListCount - 1
                 ReDim Temp(j)
                 For i = 0 To List2.ListCount - 1
                    If UCase(List3.List(i)) = UCase(List1.List(j)) Then
                       List1.RemoveItem (j)
                      Exit For
                    End If
                 Next i
               Next j
    但好象有逻辑错误,就是当List1移动的时候,标签好象就改变了.
      

  2.   

    显示错了吧,list3显示f, g吧
      

  3.   

    Private Sub Form_Load()
               List1.AddItem "a"
               List1.AddItem "b"
               List1.AddItem "c"
               List1.AddItem "d"
               List1.AddItem "e"
               List2.AddItem "a"
               List2.AddItem "b"
               List2.AddItem "g"
               List2.AddItem "h"
               List2.AddItem "k"
               For j = 0 To List1.ListCount - 1
                 t = True
                 ReDim Temp(j)
                 For i = 0 To List2.ListCount - 1
                    If UCase(List1.List(j)) = UCase(List2.List(i)) Then
                     t = False
                      Exit For
                    End If
                 Next i
                 If t = True Then List3.AddItem List1.List(j)
               Next jEnd Sub
      

  4.   

    ezlj(我啊),按你说的话,你想想List3里会有多少数据,只要是不等的话t就为true了.
      

  5.   

    zyp2kyear(E腾鸟) ,用while又怎么样呢?不是一样的,写出实际程序出来好吗?谢谢
      

  6.   

    假如只是把不同的数据加到LIST3中,楼上的那个就OK了,但是假如还要删除LIST1中得数据就要list1.listindex =0
    while list1.listindex <> -1
      b = false
      for j =0 to list2.listcount - 1
        if list2.list(j) = list1.list(list1.listindex) then
            b = true
            exit for    
        end if 
        
        if not b then
           list3.additem list1.list(list1.listindex)
           list1.removeitem list1.listindex
        end if    if list1.listindex = list1.listcount - 1 then
           list1.listindex = -1
         else
           list1.listindex = list1.listindex + 1
        end if
    wend
      

  7.   

    你的意思是不是找出list1中所有list2中不存在的对象啊?这样不就可以了吗?不=的话说明list2肯定没对象和list中相同啊,你先试下,list1的数据是a,b,c,d,e
                                    list2的数据是a,b,e,f,g  
                         运行结果是 list3: c和d
    不是这样啊?
      

  8.   

    运行结果:
    list1:   a,b,e
    list2:   a,b,f,g,e
    list3中c c,d
      

  9.   

    晕我运行了就是 c和d啊,哪来2个c