olivthill | Excuses-moi, je m'étais caché parce que je préfère éviter de donner des programmes que je n'ai pas testés, et je n'avais tellement le temps de le faire.
Mais, maintenant, c'est bon, voici un nouveau script qui traite tous les fichiers ."txt" du répertoire courant. Pour chaque fichier, les lignes sont supprimées quand elles contiennent au moins l'un des trois mots clef "toto", "titi", "tutu". S'il y a d'autres mots à filtrer, il faut dupliquer la ligne 25.
Code :
- ' Boucle sur tous le fichiers ".txt" du répertoire courant
- ' et supprime toutes les lignes qui contiennent un mot clef
- Const ForReading = 1, ForWriting = 2, ForAppending = 8
- Dim fso, f, fc, f_in, f_out
- Set fso = CreateObject("Scripting.FileSystemObject" )
- Set f = fso.GetFolder("." )
- Set fc = f.Files
- For Each f1 in fc
- If (fso.GetExtensionName(f1) = "txt" ) Then
- old_fic_nom = f1.name
- new_fic_nom = fso.GetBaseName(f1) & ".txt_tmp"
- Set f_in = fso.OpenTextFile(old_fic_nom, ForReading)
- Set f_out = fso.OpenTextFile(new_fic_nom, ForWriting, true)
- Do Until f_in.AtEndOfStream
- une_ligne = f_in.ReadLine
- If (Instr(une_ligne, "toto" ) = 0 _
- and InStr(une_ligne, "titi" ) = 0 _
- and InStr(une_ligne, "tutu" ) = 0) Then
- ' Recopie la ligne si elle ne contient pas les mots clefs
- f_out.WriteLine une_ligne
- End If
- Loop
- f_in.Close
- f_out.Close
-
- ' Remplace l'ancien fichier par le nouveau
- fso.DeleteFile old_fic_nom, true
- fso.MoveFile new_fic_nom, old_fic_nom
- End If
- Next
|
Message édité par olivthill le 27-11-2005 à 23:02:25
|