Проблема с потоком списка, когда элементы списка являются числами - PullRequest
1 голос
/ 08 июля 2011

список всегда переполняется, который содержит более тысячи элементов, мне нужен способ избавиться от этого .. Мне нужно использовать альтернативный объект, который может действовать как список!

Private Sub difference_Click()

    'Find differences and show'

    j = 0

    For i = 0 To secretlist1.ListCount - 1

        'If i use 2nd "for" with J it would cause to get same items again and again!
        'for that reason im not gonna do that instead im using a definition for j as long
        'but it keeps overflow problem so icant use it either.

        If Val(secretlist2.List(i)) <> Val(secretlist1.List(j)) Then

            lostonelist.Visible = True 'show the lostonelist
            lostonelist.AddItem secretlist1.List(j) 'add the items which are not in list2
            i = i - 1 'if they r not equal to each other move list2 index to previous one

        End If

        j = j + 1 

        'we moved list2 index to previous cause list1 index always will be increasing
        'and when they r not equal to eachother we must make sure that next item in list1
        'will be compared with the same item in list2

    Next

End Sub

ИЛИ более простой способ сделать это с помощью Do While:

Private Sub difference_Click()

    'Find differences and show'
    j = 0
    i = 0
    'For i = 0 To secretlist1.ListCount - 1
    Do While Not secretlist1.ListCount - 1

        If Val(secretlist2.List(i)) <> Val(secretlist1.List(j)) Then

            lostonelist.Visible = True
            lostonelist.AddItem secretlist1.List(j)
            i = i - 1

        End If

        j = j + 1
        i = i + 1

    Loop

End Sub

Я пытаюсь найти элементы, которых нет в secretlist2, пока они остаются в secretlist1 .. Кроме того, в этих списках все мои элементы являются числами без строки в любом из них .. Но «secretlist1 (j)» всегда переполняется, мне нужен способ избавиться от этого ... и у меня есть тысячи элементов списка. Мне нужен еще один объект, который я могу использовать в качестве списка, я все еще ищу решение, я думаю, что это хороший пример, и когда я нашел ответ на него, прежде чем вы сможете найти ... я опубликую его здесь Ты уже.

Важное примечание: это проект Visualbasic 6, а не проект .NET!

Я делал этот пример для обучения моего младшего брата как! но я переполняю себя, делая это "facepalm" xD

1 Ответ

1 голос
/ 08 июля 2011

Подумайте о том, чтобы добавить возможность «пролистывать» ваши данные. Много записей не может быть использовано человеком.

Используйте подкачку и некоторые хорошо продуманные процедуры поиска, а не бросая все данные пользователю и молясь о результатах.

много строк займет время, независимо от того, что вы делаете.

предложить измени свой дизайн

другое, используйте apis что, например, для поиска в списке

L = SendMessage (cList.hwnd, LB_FINDSTRINGEXACT, -1, ByVal sText)

заполнить каталогом Windows

SendMessage List1.hwnd, LB_DIR, DDL_READWRITE, "* .asp"

=== Другой вариант индексировать ваши вещи как

private m_indexData as collection

private sub loadInfo()
dim rs as adodb.recordset

rs = IProductRepository.GetAll()

PopulateIndex indexData, rs
End sub

private sub PopulateIndex(byref indexdata as collection, rs as adodb.recorset)
.....
end sub

class itemselected 'that is conceptual class for indexdata
    key as string
    description as strin
    location as location
end class

enum location
    [user list A]
    [user list B]
    [secret list C]
end enum

'//now user actions

public sub FindDiferences()
  dim subcollection as collection 
    subcollection = filtercollection(indexdata, [sectet list c])
end sub

public function filterCollection (data as collection, location as location) as Collection
    ....
end function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...