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
| Option Explicit
' déclaration des variables :
Const ForReading = 1, ForWriting = 2
Dim fso, f, NouveauText, LigneLue, longueur, Restedelachaine, NomAjout
'Creation d'une instance de l'objet FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
'Creation de l'objet File(fichier à lire et plus bas à éditer
set f = fso.OpenTextFile("Fichier.ini", ForReading , False)
NouveauText="" ' Initialisation du texte à écrire plus tard dans le fichier
DO While Not F.AtEndOfStream ' On lit le fichier tant qu'on n'est pas arrivé à la fin
LigneLue = F.ReadLine ' lecture ligne par ligne
If LigneLue <> "" Then ' condition sur la ligne lue (LigneLue) si elle n'est pas vide
longueur = InstrRev(LigneLue, "\") ' on récupère la position du dernier caractère \ et
' là quelle que soit le contenu de la ligne pourvu qu'il y ait le caractère \
' donc pas besoin de se limiter une longueur donnée de la chaine
Restedelachaine = Mid(LigneLue, Longueur+1) ' On récupère le reste de la chaine juste après le \
NomAjout = Mid(Restedelachaine, 1, InstrRev(Restedelachaine, ".") - 1) ' on récupère le dernier nom sans extension
LigneLue = Left(LigneLue, Longueur) & NomAjout & "\" & Restedelachaine ' on réécrit la ligne lue en y ajoutant
' le nom qu'on vient de récupérer (NomAjout)
NouveauText = NouveauText & LigneLue & vbNewLine ' On met le résultat dans la variable NouveauText
Else ' Pour garder la structure générale du fichier
NouveauText = NouveauText & LigneLue & vbNewLine ' ici on ne fait que copier une ligne vide s'il y en a une
End If
Loop
F.Close ' on ferme le fichier en lecture
set f = fso.OpenTextFile("Fichier.ini", ForWriting , False) 'on ouvre le fichier en écriture
F.Write NouveauText ' On y met le nouveau contenu(avec les modifications nécessaires)
F.Close ' on ferme le fichier pour l'enregistrer |
Partager