Oppure

Loading
22/01/10 12:22
foralobo
salve...ho un problema molto curioso:

usando la proprietà SortKey del controllo ListView riesco ad ottenere l'ordinamento per stringa..ma se volessi ottenerlo secondo dati numerici?

mi spiego meglio..

data una lista di numeri e messi nella prima colonna della listView (stiamo parlando di una disposizione della listview come report con colonne), se applico un ordinamento su tale lista, con la proprietà SortKey, non vengono ordinati in base al numero ma vede il numero come se fosse stringa...

es.

mettiamo che ho questa lista:

12
21
16
1
5
99
33


vorrei ottenere ovviamente un ordinamento cosi:

1
5
12
16
21
33
99

e invece visto che il listview (o non so) li vede come stringhe, me le ordina cosi:

1
12
16
21
33
5
99

mi date qualche consiglio per risolvere il mio prob?

Grazie
aaa
22/01/10 13:50
Alfonso
Per la list i numeri vengono visti comunque come stringhe per cui:

1
10
101

vengono prima di

2
20
200

Per ovviare devi formattare i numeri che immetti nella lista:

0001
0002
0010
0020
0100
0200
Ultima modifica effettuata da Alfonso 22/01/10 13:51
aaa
22/01/10 14:05
foralobo
Postato originariamente da Alfonso:

Per la list i numeri vengono visti comunque come stringhe per cui:

1
10
101

vengono prima di

2
20
200

Per ovviare devi formattare i numeri che immetti nella lista:

0001
0002
0010
0020
0100
0200



avevo pensato a questo...ma speravo ci fosse un metodo migliore...questo è bruttino...ma pazienza

grazie cmq
Ultima modifica effettuata da foralobo 22/01/10 14:05
aaa
25/01/10 14:10
Alfonso
Puoi mettere i tuoi numeri in un array di dimensione n (numero(n)), lo ordini e lo inserisci nella lista settata senza ordinamento.
Dim x, i, tmpN As Integer

For x = n - 1 To 0 Step -1
  For i = 0 To x
    If numero(i) > numero(i + 1) Then
     tmpN = numero(i)
     numero(i) = numero(i + 1)
     numero(i + 1) = tmpN
    End If
  Next i
Next x
For t = 0 To n
  List1.AddItem numero(t)
Next
aaa