Je vous propose un petit script en VBScript permettant de supprimer toutes les lignes en double dans n’importe quel fichier texte sous Windows (CSV, INI, LOG, TXT, …).
Ce petit script vous évitera d’avoir à importer le fichier texte dans Excel, de créer une macro qui va balayer les lignes pour supprimer les doublons, puis d’exporter à nouveau le document en format texte.
Au delà de la simplicité, le processus est également beaucoup plus rapide qu’en passant par Excel.
Le script permet de modifier le directement le fichier source mais vous pouvez également écrire le résultat dans un nouveau fichier.
Copiez le code suivant dans un fichier portant l’extension .vbs
Const ForReading = 1
Const ForWriting = 2
Set objDictionary = CreateObject("Scripting.Dictionary")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile _
("c:\namelist_source.txt", ForReading)
Do Until objFile.AtEndOfStream
strName = objFile.ReadLine
If Not objDictionary.Exists(strName) Then
objDictionary.Add strName, strName
End If
Loop
objFile.Close
Set objFile = objFSO.OpenTextFile _
("c:\namelist_cible.txt", ForWriting)
For Each strKey in objDictionary.Keys
objFile.WriteLine strKey
Next
objFile.Close
Remplacez c:\namelist_source.txt par le nom du fichier source dans lequel vous souhaitez supprimer des doublons et c:\namelist_cible.txt par le nom du fichier cible.
La source et la cible peuvent être identique si vous souhaitez écraser le fichier d’origine
Merci mille fois ! Je peux défaire les noeuds que je me faisais au cerveau !
Bonjour,
Ce script fonctionne sur les fichiers cr�es sous un �diteur.
Si je cr�e un fichier en VB comme suit :
Set wshshell = CreateObject(“wscript.shell”)
Set Fic_monfic = fso.CreateTextFile(monfic, ForWriting, True)
Fic_monfic.WriteLine “AAAA”
…. etc
les doublons sont supprim�s mais le retour est sur une seule ligne avec des s�parateurs ‘carr�s’ .
AAAA � � � � � �CCC � � � � DD � �
� repr�sentant un carr�.
Comment puis-je r�gler ce probl�me de format dans ce script ?
Merci de vos r�ponses.