OVH Cloud OVH Cloud

Trier un tableau

1 réponse
Avatar
Jean-Michel
Bonjour,

Je veux avoir quelques info sr les tableaux en vb ...
Voici un exemple de tableau que je veux traiter :

-------------------------
| Réf | Longueur |
-------------------------
| R1222 | 2500 |
| R1254 | 3000 |
--------------------------

Donc voici comment est fait mon tableau :

Dim Tableau(1 to 2, 1 to 2) AS String
Tableau(1,0) = "R1222"
Tableau(1,1) = "2500"
Tableau(2,0) = "R1254"
Tableau(2,1) = "3000"


Mais moi ce que je voudrai faire c'est d'inverser les deux lignes

les commandes :

w = Tableau(2)
Tableau(2) = Tableau(1)
Tableau(1) = w

ne passe pas car il y a qu'une donné dans la paranthese
J'aimerai eviter d'inversé chaque donné, et je veux inverser toute la ligne

Merci d'avance pour vos reponses ...

1 réponse

Avatar
François Picalausa
"Jean-Michel" a écrit dans le
message de news:
Bonjour,

Je veux avoir quelques info sr les tableaux en vb ...

ce que je voudrai faire c'est d'inverser les deux lignes




Bonjour/soir,

Voici deux exemples différents:

Le premier inverse les lignes de toutes les colonnes dans une boucle:
Dim Tableau(1, 1) As String

Tableau(0, 0) = "R1222"
Tableau(0, 1) = "2500"
Tableau(1, 0) = "R1254"
Tableau(1, 1) = "3000"

Dim Tableau2(1, 1) As String, i As Long, strbuffer As String

For i = LBound(Tableau) To UBound(Tableau)
strbuffer = Tableau(i, 0)
Tableau(i, 0) = Tableau(i, 1)
Tableau(i, 1) = strbuffer
Next i

Debug.Print Tableau(0, 0), Tableau(1, 0)
Debug.Print Tableau(0, 1), Tableau(1, 1)

Le deuxième se sert d'un tableau de tableaux pour effectuer l'opération plus
rapidement. Elle correspond, AMHA, mieux à ce que tu attends:
Dim Tableau(1)
Dim Ligne(1) As String

Ligne(0) = "R1222"
Ligne(1) = "R1254"

Tableau(0) = Ligne

Ligne(0) = "2500"
Ligne(1) = "3000"

Tableau(1) = Ligne


Debug.Print Tableau(0)(0), Tableau(1)(0)
Debug.Print Tableau(0)(1), Tableau(1)(1)
Debug.Print "----"

Dim w

w = Tableau(0)
Tableau(0) = Tableau(1)
Tableau(1) = w

Debug.Print Tableau(0)(0), Tableau(1)(0)
Debug.Print Tableau(0)(1), Tableau(1)(1)

Le problème de cette méthode est qu'elle requiert des variants qui sont
lents à l'exécution.

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com