Les Snippets

Connexion

Supprimer les doublons d'un tableau de chaines

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 07/07/2008 08:23:59 et initié par PCPT [Liste]
Date de mise à jour : 22/08/2012 16:18:43
Vue : 21134
Catégorie(s) : Chaîne de caractères
Langage sélectionné : VB6
Langages dispo pour ce code :
- VB6, VBA
- PHP 5
- C++
- C# 2.x, C# 3.x
- VB 2005, VB 2008
- Java
- Tcl
- Voir tous les langages pour ce code snippet



Langage : VB6 , VBA
Date ajout : 07/07/2008
Posté par PCPT [Liste]
Function RemoveDuplicatedItemsFromArray(ByRef  aArray() As  String) As  Long
'aArray     tableau à dédoublonner, peut être  vide ou non dimentionné, ne doit pas contrenir d'item CHR$(0)
'fonction   retourne le nombre d'items
    Dim asBuff() As String, lCount As Long, i As Long, j As Long, l As Long
    
    If ((Not (Not aArray)) = 0Then lCount = 0 Else lCount = UBound(aArray) - LBound(aArray) + 1
    If lCount Then
        If lCount = Then
'           rien à faire
            RemoveDuplicatedItemsFromArray = 1
        Else
'           travaille en tampon
            asBuff = aArray
            l = LBound(asBuff)
            For i = l To UBound(asBuff) - 1
                For j = i + To UBound(asBuff)
                    If (asBuff(i) = asBuff(j)) Then asBuff(j) =  vbNullChar
                Next j
            Next i
            
'            sauve
            j = l - 1
            For i = l To UBound(asBuff)
                If Not (asBuff(i) = vbNullChar)  Then
                    j = j + 1
                    aArray(j) = asBuff(i)
                End If
            Next i
'           resize +  retour
            ReDim Preserve aArray(l To j)
            RemoveDuplicatedItemsFromArray = UBound(aArray) - l + 1
        End If
    End If
    Erase asBuff
End Function

'---------------------
'EXEMPLE  D'UTILISATION
'---------------------
'
Private Sub Test()
    Dim asResult() As String, i As Integer
    ReDim asResult(To 20)
    For i = To 5
        asResult(i) = "ligne " & i
        asResult(i + 5) = "ligne " & i
        asResult(i + 10) = "ligne " & i
        asResult(i + 15) = "ligne " & i
    Next i
    Debug.Print RemoveDuplicatedItemsFromArray(asResult) & " lignes"
    Debug.Print "========"
    
    For i = LBound(asResult) To UBound(asResult)
        Debug.Print asResult(i)
    Next i
End Sub


Snippets en rapport avec : Tableau, Supprimer, Doublons, Chaines



Codes sources en rapport avec : Tableau, Supprimer, Doublons, Chaines

{Visual Basic, VB6, VB.NET, VB 2005} SUPPRIMER UN ITEM DANS UN TABLEAU EN LE PARCOURANT UNE SEULE FOIS
il s'agit d'une itération permettant de supprimer un élément d'un tableau ne se trouvant pas à la fi...

{Visual Basic, VB6, VB.NET, VB 2005} COMPRESSION
Fonction pour comprimer un tableau de byte...

{Visual Basic, VB6, VB.NET, VB 2005} SUPPRIMER UN ÉLÉMENT D'UN TABLEAU
Lorsque vous créez des tableaux dynamiques en VB, vous serez peut-être ammenés à avoir besoin de sup...

{C# / C#.NET} COMMENT FAIRE AJOUTER RECHERCHER SUPPRIMER MODIFIER SÉRIALISATION ET DÉSERIALISATION ...
les manipulation sur les classes en c# Comment faire Ajouter Rechercher Supprimer Modifier Sérialis...

{C / C++ / C++.NET} TABLEAU INTERACTIF ET CONVIVIAL
Ces programmes permettent de saisir des réels dans un tableau, de calculer la somme et la moyenne de...

{SQL} TRANSFORMER UNE CHAÎNE EN UN TABLEAU D'ENREGISTREMENT (ORACLE, SQL)
transformer une chaîne de caractère avec un séparateur en un tableau d'enregistrement en sql (oracle...

{Visual Basic, VB6, VB.NET, VB 2005} TABLEAU DE BORD EN EXCEL
Avis les tableaux de bord sont outils conçu sur mesure cette application Excel que vous avez consult...

{Javascript / DHTML} ARRAYUPDATE
Petite mise à jour de l'objet Array. voici les nouvelles fonction first()=>retourne le premier él...

{Visual Basic, VB6, VB.NET, VB 2005} TRIEUR DE TABLEAU SUR PLUSIEURS COLONNES
Cette classe d'objet permet de trier un tableau à une ou deux dimensions sur une ou plusieurs colonn...

{Visual Basic, VB6, VB.NET, VB 2005} NOUVELLE FONCTION EXCEL "OCCURENCE" POUR DÉTECTER LES DOUBLONS QUAND ON NE PEUT PAS TRIER LA FEUILLE
Pour répondre à la demande du membre SNOFNIE qui ne peut ni trier sa feuille ni en supprimer les do...