Bonjour.
Est-ce que quelqu'un peut m'expliquer cette synthaxe?
A quoi sert le ":" suivi d'une égualité?
Code : Sélectionner tout - Visualiser dans une fenêtre à part TAB(n) = TAB(n - h): n = n - h
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 :
La ligne qui me pose problème est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Je ne comprends pas à quoi correspond le ": n = n - h". Je n'avais encore jamais vu cette synthaxe avec le ":" suivant une égalité.
Code : Sélectionner tout - Visualiser dans une fenêtre à part TAB_Affec(0, n) = TAB_Affec(0, n - h): n = n - h
Je serais tenté d'écrire un truc du tyle :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Quelqu'un peut m'aider? En tout cas, merci à ceux qui ont pris le temps de lire mon sujet.
Bonne journée.
Emmanuel
Partager