IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Supprimer les doublons


Sujet :

VB.NET

  1. #1
    Membre très actif
    Homme Profil pro
    ray man
    Inscrit en
    Juillet 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : ray man

    Informations forums :
    Inscription : Juillet 2009
    Messages : 274
    Par défaut Supprimer les doublons
    Bonjour

    J'ai un tableau qui contient plus de 10 Million d'enregistrement et je veux bien savoir combien il ya de doublons et les supprimer ?

    et je veux bien savoir combien sa va prendre du temps pour me donné le résultat



    Cordialement

  2. #2
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    tu as des collections qui évitent les doublons, comme la hashset qui est apparu au framework 3.5 http://msdn.microsoft.com/fr-fr/libr...=vs.90%29.aspx

  3. #3
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Bonjour,

    Quand vous parlez de tableau, vous voulez dire une table dans une base de donnée je suppose?

  4. #4
    Membre très actif
    Homme Profil pro
    ray man
    Inscrit en
    Juillet 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : ray man

    Informations forums :
    Inscription : Juillet 2009
    Messages : 274
    Par défaut
    Citation Envoyé par youtpout978 Voir le message
    tu as des collections qui évitent les doublons, comme la hashset qui est apparu au framework 3.5 http://msdn.microsoft.com/fr-fr/libr...=vs.90%29.aspx
    Merci pour votre repense mais j'ai pas bien compris la documentation chez msdn

    Citation Envoyé par Sankasssss Voir le message
    Bonjour,

    Quand vous parlez de tableau, vous voulez dire une table dans une base de donnée je suppose?
    non je parle d'un tableau ou d'une liste je le rempli depuis un fichier qui contient + 1M de ligne


    Cordialement

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    le mieux est alors de ne pas insérer dans le tableau si c'est déjà présent, et il y a des collections performantes pour ca, peut etre le hashtable
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Je plussoie Paul63
    Et si vous n'avez pas le choix, que vous êtes obligé de tout charger, LINQ permet de faire cela sur les tableaux...

  7. #7
    Membre très actif
    Homme Profil pro
    ray man
    Inscrit en
    Juillet 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : ray man

    Informations forums :
    Inscription : Juillet 2009
    Messages : 274
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    le mieux est alors de ne pas insérer dans le tableau si c'est déjà présent, et il y a des collections performantes pour ca, peut etre le hashtable
    Citation Envoyé par Sankasssss Voir le message
    Je plussoie Paul63
    Et si vous n'avez pas le choix, que vous êtes obligé de tout charger, LINQ permet de faire cela sur les tableaux...
    Merci pour les repenses

    Mais sachant que je suis débutent dans le monde du .NET qu'il es la l’utilisation la plus simple.

    Mais on prendre en compte que il ya des moment ou je doit donné au systeme des fichier qui contient plus de 10 Million de lignes.

    sachant que j'ai déjà réalisé ce systeme sous php mais sa me fais attendre plus de 10 min pour avoir résultat


    Cordialement

  8. #8
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Quand vous dites :
    Citation Envoyé par youtpout978 Voir le message
    non je parle d'un tableau ou d'une liste je le rempli depuis un fichier qui contient + 1M de ligne
    Il s'agit de quoi comme fichier?
    Pourriez-vous nous donner le code de chargement du tableau via le fichier?
    On peut optimiser le code dès le chargement comme dit par Pol63 mais il faudrait voir comment vous le chargé...

  9. #9
    Membre très actif
    Homme Profil pro
    ray man
    Inscrit en
    Juillet 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : ray man

    Informations forums :
    Inscription : Juillet 2009
    Messages : 274
    Par défaut
    voila comment je charge les donné


    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
     
    Dim PATHFICHIER As String = "test.txt"
            Dim list As New List(Of String)
     
     
            'lecture du flux 
            Dim Monflux As Stream
            Monflux = File.OpenRead(PATHFICHIER)
            'lecture ligne à ligne 
            Dim Maligne As StreamReader = New StreamReader(Monflux, System.Text.Encoding.ASCII)
     
            Maligne.BaseStream.Seek(0, SeekOrigin.Begin)
            '.peek défini le caractère suivant, si =-1 alors 
            'c'est qu'il n'y a plus de caractère 
            'la fin du fichier est donc atteinte  
            Dim i As Integer = 0
            While Maligne.Peek() > -1
                Dim rep As String = Maligne.Peek
                'MsgBox(Maligne.ReadLine()) 'j'affiche ligne après ligne
                list.Add(Maligne.ReadLine())
            End While
            Maligne.Close() 'on n'oublie pas de fermer le fichier

  10. #10
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Si vous changez votre liste en HashSet : Dim List As New HashSet(Of String) vous êtes sur de n'avoir qu'une seul fois les valeurs, mais vous ne pourrez pas compter le nombre de valeurs identique...
    Est-ce que c'est important de savoir le nombre de doublons?

  11. #11
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    le mieux est de list.add seulement si list de contient pas déjà le string (if not list.contains)
    le list n'est pas le plus performant pour ca, car contains va lire toute la collection pour vérifier la présence
    il y a des collections où contains est plus rapide


    si une ligne du fichier = une données à mettre dans la collection tu peux tenter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list = System.IO.File.ReadAllLines("le path du fichier").Distinct.ToList
    ce n'est le plus performant mais c'est le plus simple à écrire
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. supprimer les doublons dans une table
    Par mavean dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 26/06/2019, 14h26
  2. Comment supprimer les doublons
    Par djelloulc dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 17/09/2013, 15h30
  3. Comment supprimer les doublons?
    Par Dnx dans le forum Langage SQL
    Réponses: 3
    Dernier message: 24/11/2005, 17h35
  4. [vbexcel]Comment supprimer les doublons dans une combobox?
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 24/11/2005, 12h12
  5. [ListView]Supprimer les doublons
    Par mohamed dans le forum Composants VCL
    Réponses: 1
    Dernier message: 27/10/2005, 13h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo