[Gambas-user] A random sort of listview

Simonart Dominique simonart.dominique at ...11...
Sun Apr 12 02:30:25 CEST 2009


Hi,

jbskaggs a écrit :
> Okay I thought this was worked out but its still not working- I always end up
> losing the last two list items.
> 
> Here is the console output from my print statements:
> This first list is printing i, a from this command SWAP myArray[i],
> myArray[a]
> 
> 21      21
> 20      13
> 19      0
> 18      13
> 17      11
> 16      4
> 15      9
> 14      12
> 13      4
> 12      2
> 11      6
> 10      2
> 9       4
> 8       0
> 7       5
> 6       1
> 5       3
> 4       3
> 3       0
> 2       0
> 1       0
> 0       0
> 

Here, you listed i and a but the interesting values are i 
and myArray[i] instead

> This list shows where listview1 is being copied into listview2:
> 
> listview1.item.key      21       counter i:     21       total count:   22
> listview1.item.key      13       counter i:     20       total count:   22
> listview1.item.key      13       counter i:     19       total count:   22
> listview1.item.key      20       counter i:     18       total count:   22
> listview1.item.key      11       counter i:     17       total count:   22
> listview1.item.key      4        counter i:     16       total count:   22
> listview1.item.key      9        counter i:     15       total count:   22
> listview1.item.key      12       counter i:     14       total count:   22
> listview1.item.key      16       counter i:     13       total count:   22
> listview1.item.key      2        counter i:     12       total count:   22
> listview1.item.key      6        counter i:     11       total count:   22
> listview1.item.key      14       counter i:     10       total count:   22
> listview1.item.key      18       counter i:     9        total count:   22
> listview1.item.key      19       counter i:     8        total count:   22
> listview1.item.key      5        counter i:     7        total count:   22
> listview1.item.key      5        counter i:     6        total count:   22
> listview1.item.key      3        counter i:     5        total count:   22
> listview1.item.key      7        counter i:     4        total count:   22
> listview1.item.key      8        counter i:     3        total count:   22
> listview1.item.key      15       counter i:     2        total count:   22
> listview1.item.key      10       counter i:     1        total count:   22
> listview1.item.key      17       counter i:     0        total count:   22
> 
> here is a screen shot of the two lists: listview1 is on the left, you will
> notice that the last two items are not on the random sorted list on the
> right.
> 

First, is it correct that you have twice the keys 13 and 5 
in ListView1 and that keys 0 and 1 are missing?
I tried to reproduce exactly your keys sequence but as soon 
as I want to add an identical key, I get a message and the 
programme stop immediatly.

> http://www.nabble.com/file/p23005690/ScreenshotBug.png 
> 
> 
> Here is my code:
> 
> PUBLIC SUB button4_click()
> DIM myArray AS Integer[ListView1.count]
> DIM a AS Integer
> DIM i AS Integer
> DIM c AS String
> 
> FOR i = 0 TO ListView1.count - 1 STEP 1
>  myArray[i] = i 
> NEXT 
> 
> FOR i = ListView1.count - 1 TO 0 STEP -1
> a = Int(Rnd(i + 1))
> SWAP myArray[i], myArray[a]
> PRINT i, a
> NEXT 
> 
> FOR i = ListView1.count - 1 TO 0 STEP -1 ' write items in listview2 -<<<<< I
> have also tried running this counting up as well but it changed nothing.
> 
> listview1.MoveTo(myArray[i])
> TRY c = listview1.Item.Key
> TRY PRINT "listview1.item.key ", c, " counter i: ", i, " total count: ",
> listview1.Count
> TRY listview2.add(c, listview1.item.text) 
> NEXT 
> 'fGlobal.show
> 'FRolldice.Show
> 
> 'ME.Hide
> 
> END
> 
> 
> Sincerly JB SKaggs
> 

I run your code and it works quite fine!
I think your missing items come from the duplicated keys

Dominique Simonart





More information about the User mailing list