Synthaxe avec ":" / Tri Shell tableau multidimensions
Bonjour.
Est-ce que quelqu'un peut m'expliquer cette synthaxe?
Code:
TAB(n) = TAB(n - h): n = n - h
A quoi sert le ":" suivi d'une égualité?
J'ai récupérer un code pour faire un tri shell sur un tableau. Mon tableau a 3 colonnes. J'ai réussi à faire le tri sur la première colonne. Par contre, je n'arrive pas à trouver comment faire les inversions pour les 2 autres colonnes.
Voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| Dim m As Long, n As Long, h As Long, v As String
Dim loBound As Long, upBound As Long
loBound = 0
upBound = NbAff
h = loBound
Do
h = 3 * h + 1
Loop Until h > upBound
Do
h = h / 3
For m = h + 1 To upBound
v = TAB_Affec(0, m): n = m
Do While CStr(TAB_Affec(0, n - h)) > v
TAB_Affec(0, n) = TAB_Affec(0, n - h): n = n - h
If n <= h Then
Exit Do
End If
Loop
TAB_Affec(0, n) = v
Next m
Loop Until h = loBound |
La ligne qui me pose problème est :
Code:
TAB_Affec(0, n) = TAB_Affec(0, n - h): n = n - h
Je ne comprends pas à quoi correspond le ": n = n - h". Je n'avais encore jamais vu cette synthaxe avec le ":" suivant une égalité.
Je serais tenté d'écrire un truc du tyle :
Code:
1 2 3
| TAB_Affec(0, n) = TAB_Affec(0, n - h): n = n - h
TAB_Affec(1, n) = TAB_Affec(1, n - h): n = n - h
TAB_Affec(2, n) = TAB_Affec(2, n - h): n = n - h |
pour que les 2 autres colonnes soient concernées par le tri et que les valeurs reste en correspondance avec celle de la première colonne mais cela ne fonctionne pas.
Quelqu'un peut m'aider? En tout cas, merci à ceux qui ont pris le temps de lire mon sujet.
Bonne journée.
Emmanuel