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
| Option Explicit ' <=== Déclaration très recommandée pour éviter toute ambiguïté
Const ForReading = 1, ForWriting = 2
Dim fso, fich, Ret, FileName, Ligne
Dim NameFolder, NewValue, nbrReplacement
nbrReplacement = 0
FileName = ".\Test205\Test.reg"
Set fso = CreateObject("Scripting.FileSystemObject")
NameFolder = fso.GetFolder(fso.GetFile(FileName).ParentFolder).Name
NewValue = Quote("Name") & "=" & Quote(NameFolder) ' Nouvelle ligne à écrire
Set fich = fso.OpenTextFile(FileName, ForReading, False)
Do While Not Fich.AtEndOfStream
Ligne = Trim(Fich.ReadLine)
If InStr(1, LCase(Ligne),Quote("name") & "=" & Chr(34) & "test", vbTextCompare) > 0 _
And InStr(1, Ligne, NameFolder, vbTextCompare) = 0 Then ' dans ce cas, on remplace la ligne lue par NewValue
Ligne = NewValue
nbrReplacement = nbrReplacement + 1 ' Compteur pour les remplacements
End If
Ret = Ret & Ligne & vbNewLine
Loop
fich.Close ' On doit fermer le fichier car on va l'utiliser en écriture
MsgBox " Nombre de remplacements : " & nbrReplacement
Set fich = fso.OpenTextFile(FileName, ForWriting, True)
Ret = Left(Ret, Len(Ret) - 2) ' On supprime le dernier retour chariot (vbNewLine)
fich.Write Ret
fich.Close ' On fermer le fichier
'==========================
Function Quote(StrIn)
Quote = Chr(34) & StrIn & Chr(34)
End Function |
Partager