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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| Const ForReading = 1, ForWriting = 2
Dim fso, WShShell, fic_depart, fic_tmp, fic_final, sFile, lect, ecr
Dim Var_depart, Var_tmp, Var_final, Texte, categorie
Set fso = CreateObject("Scripting.FileSystemObject")
Set WSHShell = WScript.CreateObject("WScript.Shell")
fic_depart = "\\serveur\fichier1.txt"
fic_tmp = "\\serveur\fichiertmp.txt"
fic_final = "\\serveur\fichier2.txt"
'Saisie de la (les) catégorie(s) recherchée(s)
Rech_cat = InputBox("Catégorie recherchée ?","Saisie")
Long_cat = Len(Rech_Cat)
'Lecture du fichier de départ
Set Var_depart = fso.OpenTextFile(fic_depart,ForReading)
sFile = Var_depart.ReadAll
Set oRegEx = New RegExp
oRegEx.Pattern = "155 \d{11}"
oRegEx.Global=True
Set Matches = oRegEx.Execute(sFile)
For Each Match in Matches
sID = sID & vbCrLf & Match.Value
sID = Replace(sID, " ",";")
Next
'Ecriture du fichier temporaire
Set Var_tmp = fso.CreateTextFile(fic_tmp)
With Var_tmp
.writeLine sID
End with
Var_depart.close
Var_tmp.close
'Lecture du fichier temporaire et écriture du fichier final
Set Var_final = fso.CreateTextFile(Fic_final) : Var_Final.close
Set lect = fso.OpenTextFile(Fic_tmp, ForReading)
Set ecr = fso.OpenTextFile(Fic_final, ForWriting)
While Not lect.AtEndOfStream
Texte = lect.ReadLine
Texte = Trim(Texte)
categorie = Mid(Texte, 7, 1)
For i = 1 to Long_Cat
if categorie = Mid(Rech_cat, i, 1) Then
ecr.Writeline Texte
End if
Next
Wend
lect.Close
ecr.Close
'Affichage du fichier final
if fso.FileExists(fic_tmp) Then fso.DeleteFile Fic_tmp, True
WSHShell.Run ("C:\WINDOWS\system32\notepad.exe " & fic_final)
WScript.Quit |
Partager