cs_AlexTheDoctor
Messages postés23Date d'inscriptionjeudi 7 décembre 2000StatutMembreDernière intervention 8 avril 2010
-
4 avril 2008 à 17:05
cs_christoni
Messages postés140Date d'inscriptionmardi 25 novembre 2003StatutMembreDerniè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)
alosamoelle
Messages postés129Date d'inscriptionjeudi 28 octobre 2004StatutMembreDernière intervention23 mai 20091 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.
cs_christoni
Messages postés140Date d'inscriptionmardi 25 novembre 2003StatutMembreDernière intervention 1 novembre 20107 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