Newsgroup: it.comp.lang.visual-basic
Titolo: HELP!!!!!! LIMITE LISTBOX URGENTE

Devo inserire 88900 record in una listbox e al 70800° record
si ferma e mi dice "Indice della matrice non valido"
Aiuto devo consegnare il programma fra pochi giorni
ringrazierò in eterno chi mi aiuterà

 si ferma e mi dice "Indice della matrice non valido"
credo dipenda anche dalla memoria e dal SO che usi...
su xp fila tutto liscio :))
hai provato il programma con vb chiuso ?
ciao :))

 ha scritto nel messaggio
news:yEqK8.8741$QT3.2...@twister2.libero.it...

Ho anche io XP ma ho scoperto che il controllo listbox si ferma a 32768 a
32769 da già errore avete una minima idea di un controllo simile ma che
contenga 88900 righe??

 contenga 88900 righe??
guarda che avrai dei problemi di memoria......
comunque prova listview
ciao

 ha scritto nel messaggio
news:yEqK8.8741$QT3.2...@twister2.libero.it...

Il limite dovrebbe esser proprio nella memoria ...
ma non hai una soluzione piu' 'gestibile'?? magari spezzando la list o
simili 90000 righe in una list mi sembrano una grossa quantità...da
visualizzare e gestire da perte di un utente

 contenga 88900 righe??
Scusa, sono lontano da compilatori/MSDN/etc. ma mica per caso hai un indice
segnato come Integer? Prova a metterlo a Long, perche' mi pare che i limiti
che indichi sono proprio quelli dell'Integer...
Ciao,
- SonicBoom -

 ha scritto

gia'...
Private Sub cmdLoad_Click()
    Dim j As Long, cnt As Long, itmX As ListItem
    Dim time1: time1 = Timer
    cnt = Val(txtItems)
    LV.ListItems.Clear
    For j = 1 To cnt
        Set itmX = LV.ListItems.Add()
        itmX.Text = Format(j, "000000")
        itmX.SubItems(1) = j
        itmX.SubItems(2) = Format(Timer - time1, "##0.00000")
'        itmX.EnsureVisible: DoEvents
    Next
    RefreshCount
End Sub
qui senza doevents ci mette 13'8 a caricare 50k elementi.
col doevents diventa un disastro.
j.

 gia'...
Lui mi ha dato ragione!! :) Sogno o son desto? :)
Ciao,
- SonicBoom -
PS Piu' tardi rispondo alla tua mail!

 PS Piu' tardi rispondo alla tua mail!
quando vuoi.
ciao, j.

> se qualcuno ha un 9x sottomano e vuole provare il codice qui su, meglio.
Ora verifico sul mitico portatile con l'ancor piu' mitico WinME (ma sbaglio,
o ME fa abbastanza schifo come sistema operativo?).
Ciao,
- SonicBoom -

 o ME fa abbastanza schifo come sistema operativo?).
Su WinXP (256Mb di ram, una istanza di VB, due di IE e Outlook Express
aperti, piu' altri vari programmi residenti) 50000 items vengono caricati in
16.1 sec (ma e' normale??? perche' a te impiega tanto tempo di meno???).
Su WinME: Errore di run-time 5 con il valore della variabile nel ciclo pari
a 32737! :)
Morale: i Win9x danno sempre tanti problemi! (alla faccia di chi vuole usare
700, 7000 o 70000 nei textbox... :) )
- SonicBoom -

 se qualcuno ha un 9x sottomano e vuole provare il codice qui su, meglio.
Non credo che dipenda dal SO e/o dalla versione di VB.
Ho provato e c'è un paradosso: Nel ListBox si possono aggiungere più di
32767 elementi, ma appena fai List1.Listindex=32768, ciccia. Questa
proprietà (come ListCount) in debug viene data come Integer...

 700, 7000 o 70000 nei textbox... :) )
ciao, a.

 proprietà (come ListCount) in debug viene data come Integer...
vero. un geniale trabocchetto ms :)
ciao, a.

 a 32737! :)
5.10 secondi per 50.000, nelle tue analoghe condizioni (XP Pro, Celeron
1.06Ghz, 256 Mb, solo OE aperto)

 1.06Ghz, 256 Mb, solo OE aperto)
5.5 quando ho riprovato per lupo.
p3/800, oe, un vbms mio, un paio di finestre ie.
ciao, a.

 ha scritto nel messaggio
news:addh7f$3j4$1...@lacerta.tiscalinet.it...
CUT
fatti pagare tantissimo allora...chiunque abbia voglia di scegliere da un
listbox con 80.000 righe DEVE essere costretto a pagare tantissimo!
...io sono dell'idea che quando vedranno che ti hanno detto una cazzata ti
faranno fare una modifica magari dicendo che non si son spiegati bene!!! ...
cmq sarebbe la gioa degli oculisti un programma del genere...ti immagini una
segretaria che deve scegliere il 45.562 record!....una mattina solo per
scegliere!...
filtra da retta!...
:-)

 ha scritto nel messaggio
news:addh7f$3j4$1...@lacerta.tiscalinet.it...


 cvd
Eheheh! :)
Ciao,
- SonicBoom -

 1.06Ghz, 256 Mb, solo OE aperto)
Grrrrr.... Ma allora e' il mio sistema che va da schifo....
Comunque il processore e' un Athlon 800, mica quei 260Mhz di differenza
possono "valere" 11 secondi???
Ciao,
- SonicBoom -

 xchè io ho fatto questo lavoro con il vb3 su un db di 60000 record
Buona idea, analoga a quella di non caricare mai in una griglia tutti gli
elementi, ma ... se occorre fare delle selezioni multiple?

 elementi, ma ... se occorre fare delle selezioni multiple?
ogni volta che clicchi puoi controllare cosa selezioni non ci vuole molto
:))))
comunque queste liste virtuale soprattuto in altri linguaggi sono usate :))
ciao


Yess, anche se un listbox non mi sembra il modo migliore
di gestire 7000 record...   :-P
ciao
ugo