Supprimer doublons streamreader

cs_AlexTheDoctor Messages postés 23 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 8 avril 2010 - 4 avril 2008 à 17:05
cs_christoni Messages postés 140 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 1 novembre 2010 - 6 avril 2008 à 14:52
Bonjour tout le monde.

Je voudrai savoir comment je pourrai supprimer des doublons dans un fichier txt (streamreader)

exemple fichier : 
a
b
c
d
a
a
b
e
d

et je voudrai:
a
b
c
d
e

Y-a t-il une fonction?

Merci pour vos réponses....

Alex

2 réponses

alosamoelle Messages postés 129 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 23 mai 2009 1
4 avril 2008 à 18:47
bonjour,
si ton fichier n'est pas gros tu mets les lignes dans un listbox et avant de l'insérer tu vérifie si elle existe déja.
si le fichier est plus gros travaille tes lignes dans un tableau ex: ligne(1000) et vérifie de la même manière.
0
cs_christoni Messages postés 140 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 1 novembre 2010 7
6 avril 2008 à 14:52
Bonjour, une solution :
    '*** Récupération du chemin de l'application et des données enregistrées.
    '    Pour simplifier, "MonFichBrut.txt" comprenant l'exemple est dans bin-->Debug
    Public pathExe As String = My.Application.Info.DirectoryPath & ""

    '*** Un bouton sur le form pour tester :
    Private Sub btnSansDoublon_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles btnSansDoublon.Click
        Dim text As String
        text = CStr(LoadMonFichierSansDoublon(pathExe & "MonFichBrut.txt"))
        MessageBox.Show(text)
    End Sub

    Function LoadMonFichierSansDoublon(ByVal path As String) As String

        Dim valeur As String = ""
        Dim pattern As String
        Dim nouvValeur As String

        ' Create an instance of StreamReader to read from a file.
        Using sr As IO.StreamReader = New IO.StreamReader(path)
            '*** Chargement du premier caractère du fichier.
            '    Renseignement de la chaîne contenant les caractères
            '    déjà présents.
            valeur = Convert.ToChar(sr.Read())
            pattern = "[" & valeur & "]"

            Do While sr.Peek() >= 0
                '*** Chargement du caractère suivant.
                nouvValeur = Convert.ToChar(sr.Read())
                '*** Si ce nouveau caractère est different de pattern,
                '    on le conserve.
                '    Et l'on supprime les nouvelle ligne et retour chariot
                '    de la chaîne "pattern", pour conserver les sauts de lignes
                '    sinon on les réintègre pour ne pas avoir de lignes vides.
                If nouvValeur <> System.Text.RegularExpressions.Regex. _
                Match(nouvValeur, pattern).Value Then
                    valeur = valeur & nouvValeur
                    pattern = System.Text.RegularExpressions.Regex. _
                           Replace(pattern, "[\n\r]", "")
                Else
                    pattern = "[" & valeur & "\n\r]"
                End If
            Loop
            sr.Close()
            Return valeur
        End Using

    End Function
bonne continuation.
0
Rejoignez-nous