souaddemaroc dit:
Je serais ravissante si tu me explique un peu ce qui se passe dans ce code et merçi bien
Vraiement désolé, je vais essayer de commenter un peu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
Dim fsr As New IO.StringReader("Chemin\Fichier")
Dim dtFiltre As New DataTable("AdresseMail")
Dim buf As String
'Enumére ici tous les caractères que tu souhaite banir
Const ARetirer As String = "éàèêâù"
'On crée une colonne de type string dans notre DataTable qui stockera nos Adresses Email
dtFiltre.Columns.Add("AdresseEmail", GetType(String))
'La classique boucle pour lire les lignes d'un fichier une à une
buf = fsr.ReadLine
While (Not buf Is Nothing)
'On contrôle si la ligne lue(l'adresse Email) ne comporte pas de caractères accentuées
If buf.IndexOfAny(ARetirer.ToCharArray()) = -1 Then
'On compte le nombre d'enregistrement présents dans le DataTable qui aurait comme valeur de champ AdresseEmail l'adresse contenu dans la ligne en cours de lecture, c'est seuleument s'il y'en a aucun qu'on l'ajoute à la DataTable(Controle de doublan)
If dtFiltre.Compute("COUNT(AdresseEmail)", "AdresseEmail='" & buf.ToString().Replace("'", "''") & "'") = 0 Then
'On ajoute la ligne au DataTable
dtFiltre.Rows.Add(New String() {buf}).AcceptChanges()
End If
End If
buf = fsr.ReadLine
End While
fsr.Close()
Dim fsw As New IO.StreamWriter("Chemin\Fichier")
'Maintenant qu'on est sûre que le DataTable ne comporte que des lignes sans doublans et pas de lettres accentuées, on l'a parcourt et on ecrit le tout délimité encore par des retour à la ligne.
For i As Integer = 0 To dtFiltre.Rows.Count - 1
fsw.WriteLine(dtFiltre.Rows(i)("AdresseEMail").ToString())
Next i
fsw.Close()
dtFiltre.Dispose() |
souaddemaroc dit:
j'ai essai ton code mais cela ne marche pas à la ligne
If dtFiltre.Compute("COUNT(AdresseEmail)", "AdresseEmail='" & buf.ToString().Replace("'", "''") & "'") = 0 Then
Je comprends pas pourquoi ça poserait problème, essaye en la remplaçant par cette ligne:
If dtclient.Select("AdresseEmail LIKE '" & buf.Replace("'","''") & "'").Length=0 Then
Partager