Partage
  • Partager sur Facebook
  • Partager sur Twitter

trié un tableau à 2 dimensions de string

par ordre alphabétique

    24 février 2011 à 15:57:25

    Bonjour j'aimerais trié un tableau à 2 dimensions par rapport à la 2è colonne

    voici un exemple du tableau

    a cub
    a su2
    a cuc
    b cub
    c cub
    d ct
    e su2
    e cuc
    f cuc

    voilà comment est rempli le tableau


    'permet de savoir combien de fois le pdf va apparaitre dans le nv pdf
                                            vNb = Mid(ligne, InStrRev(ligne, " ") + 1, InStr(ligne, " ") - 1)
    
                                            'ajoute vNB fois le pdf
                                            For i = 1 To vNb
                                                'remplit le tableau des ateliers
                                                'récupére le nom de l'atelier
                                                vAtelier(j, 1) = Mid(ligne, InStrRev(ligne, " ") - 3, InStr(ligne, " ") + 1)
                                                vFichier = vChemin_externe & "\" & vNomFichier
                                                vAtelier(j, 0) = vFichier
    
                                            Next
    


    et ma fonction de tri

    Sub Tri(ByRef Liste(,) As String, ByVal bASC As Boolean)
            Dim i As Long, j As Long
            Dim Temp As String
            Dim temp2 As String
    
            If bASC Then    '  croissant
                For i = LBound(Liste) To UBound(Liste) - 1
                    For j = i + 1 To UBound(Liste)
                        If Liste(i, 1) > Liste(j, 1) Then
                            Temp = Liste(j, 1)
                            Liste(j, 1) = Liste(i, 1)
                            Liste(i, 1) = Temp
    
                            temp2 = Liste(j, 0)
                            Liste(j, 0) = Liste(i, 0)
                            Liste(i, 0) = Temp
                        End If
                    Next j
                Next i
            Else            ' décroissant
                For i = LBound(Liste) To UBound(Liste) - 1
                    For j = i + 1 To UBound(Liste)
                        If Liste(i, 1) < Liste(j, 1) Then
                            Temp = Liste(j, 1)
                            Liste(j, 1) = Liste(i, 1)
                            Liste(i, 1) = Temp
    
                            temp2 = Liste(j, 0)
                            Liste(j, 0) = Liste(i, 0)
                            Liste(i, 0) = Temp
                        End If
                    Next j
                Next i
            End If
        End Sub
    


    merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      24 février 2011 à 16:16:27

      Utilise un Dictionary(Of String, String), c'est ce qu'il te faut. C'est une table associative clé <--> valeur.
      • Partager sur Facebook
      • Partager sur Twitter
        2 mars 2011 à 20:03:32

        voila l'algorithme de trier par alphabitique est fait le teretment on vb

        POUR nbmots ALLANT DE 1 A 10
        Faire
        AFFICHER « Entrer le mot suivant »
        LIRE MOT
        Pluspetit 􀃅 VRAI
        j 􀃅 1
        TANTQUE (pluspetit ET (j < nbmots))
        Faire
        k 􀃅 1
        TantQue ((MOTS (j, k) = MOT (k)) ET k <= 20)
        Faire
        k 􀃅 k+1
        FTQ
        Si (MOTS (j, k) < MOT (k))
        ALORS
        j 􀃅 j+1
        SINON
        Pluspetit 􀃅 FAUX
        FSI
        FTQ


        Si (j < nbmots)
        ALORS
        POUR i ALLANT DE nbmots A j+1 PAS –1
        Faire
        POUR k ALLANT DE 1 A 20
        Faire
        MOTS (i, k) 􀃅 MOTS (i-1, k)
        FinPour
        FinPour
        FSI
        POUR k ALLANT DE 1 A 20
        Faire
        MOTS (j, k) 􀃅 MOT (k)
        FinPour
        FinPour
        POUR i ALLANT DE 1 A nbmots
        Faire
        AFFICHER MOTS (i)
        FinPour
        • Partager sur Facebook
        • Partager sur Twitter

        trié un tableau à 2 dimensions de string

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown