D=E9j=E0 , je tiens =E0 m'excuser, car je n'y connais vraiment=20
rien en VBS.
J'aimerai lire un fichier texte , rechercher dans ce=20
fichier le mot "EXEMPLE" et le remplacer par "TOTO".
Est-ce possible ?
J'aimerai aussi que ce VBS modifie tous les fichiers se=20
trouvant dans une arboresence.
CAD; un repertoire principal puis en dessous que des=20
repertoires A - B - C avec chaque fois dans ces sous=20
r=E9pertoires le fichier texte en question.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Zoury
Salut à toi Ô Débutant! :O)
En VBS, tu dois utiliser la Scripting Runtime Library (scrrun.dll) qui elle offre le FileSystemObject (FSO) afin d'effectuer des traitements sur des fichiers, répertoires ou lecteurs. Voici un exemple de code en VBS qui reçoit le nom d'un répertoire en paramètre ainsi que le mot à chercher et le mot par laquelle nous devons le remplacer.
Private Sub ParseFolder(sFolderPath, sFind, sReplace)
Dim fld Dim ts Dim sFileText Dim fso Dim f Dim fld2
' Initialise le FSO ' CreateObject instancie la classe spécifiée (ProgID) Set fso = CreateObject("Scripting.FileSystemObject")
' Obtient le répertoire actuel Set fld = fso.GetFolder(sFolderPath)
' Boucle ses fichiers et effectu le replacement For Each f In fld.Files Call ReplaceTextInFile(f.Path, sFind, sReplace) Next
' Boucle ses sous-répertoires For Each fld2 In fld.SubFolders ' Rappelle la fonction Call ParseFolder(fld2.Path, sFind, sReplace) Next
End Sub
Private Sub ReplaceTextInFile(sFile, sFind, sReplace)
Dim ts Dim fso Dim sFileText Const ForReading = 1 ' utilisé par FSO Const ForWriting = 2 ' utilisé par FSO
' Initialise le FSO Set fso = CreateObject("Scripting.FileSystemObject")
' Ouvre le fichier en lecture Set ts = fso.OpenTextFile(sFile, ForReading, False)
' Lit son contenu sFileText = ts.ReadAll
' Ferme le fichier Call ts.Close
' Ouvre le fichier en écriture Set ts = fso.OpenTextFile(sFile, ForWriting, False)
' Modifie son contenu en remplacant la chaine Call ts.Write(Replace(sFileText, sFind, sReplace))
' Ferme le fichier modifié ts.Close
End Sub '***
Note : La fonction est récursive, elle se rappelle elle même jusqu'à ce qu'il n'y est plus de sous répertoire à fouiller. Tu peux mettre autant de fichiers que tu souhaites dans les répertoires et sous répertoires.
L'arborescence suivante par exemple fonctionnerait:
Merci de poster les réponses au groupe afin d'en faire profiter à tous "Débutant" wrote in message news:0fbb01c3898b$8fbddcb0$ Bonjour,
Déjà , je tiens à m'excuser, car je n'y connais vraiment rien en VBS. J'aimerai lire un fichier texte , rechercher dans ce fichier le mot "EXEMPLE" et le remplacer par "TOTO". Est-ce possible ?
J'aimerai aussi que ce VBS modifie tous les fichiers se trouvant dans une arboresence. CAD; un repertoire principal puis en dessous que des repertoires A - B - C avec chaque fois dans ces sous répertoires le fichier texte en question.
Merci
Salut à toi Ô Débutant! :O)
En VBS, tu dois utiliser la Scripting Runtime Library (scrrun.dll) qui elle
offre le FileSystemObject (FSO) afin d'effectuer des traitements sur des
fichiers, répertoires ou lecteurs. Voici un exemple de code en VBS qui
reçoit le nom d'un répertoire en paramètre ainsi que le mot à chercher et le
mot par laquelle nous devons le remplacer.
Private Sub ParseFolder(sFolderPath, sFind, sReplace)
Dim fld
Dim ts
Dim sFileText
Dim fso
Dim f
Dim fld2
' Initialise le FSO
' CreateObject instancie la classe spécifiée (ProgID)
Set fso = CreateObject("Scripting.FileSystemObject")
' Obtient le répertoire actuel
Set fld = fso.GetFolder(sFolderPath)
' Boucle ses fichiers et effectu le replacement
For Each f In fld.Files
Call ReplaceTextInFile(f.Path, sFind, sReplace)
Next
' Boucle ses sous-répertoires
For Each fld2 In fld.SubFolders
' Rappelle la fonction
Call ParseFolder(fld2.Path, sFind, sReplace)
Next
End Sub
Private Sub ReplaceTextInFile(sFile, sFind, sReplace)
Dim ts
Dim fso
Dim sFileText
Const ForReading = 1 ' utilisé par FSO
Const ForWriting = 2 ' utilisé par FSO
' Initialise le FSO
Set fso = CreateObject("Scripting.FileSystemObject")
' Ouvre le fichier en lecture
Set ts = fso.OpenTextFile(sFile, ForReading, False)
' Lit son contenu
sFileText = ts.ReadAll
' Ferme le fichier
Call ts.Close
' Ouvre le fichier en écriture
Set ts = fso.OpenTextFile(sFile, ForWriting, False)
' Modifie son contenu en remplacant la chaine
Call ts.Write(Replace(sFileText, sFind, sReplace))
' Ferme le fichier modifié
ts.Close
End Sub
'***
Note : La fonction est récursive, elle se rappelle elle même jusqu'à ce
qu'il n'y est plus de sous répertoire à fouiller. Tu peux mettre autant de
fichiers que tu souhaites dans les répertoires et sous répertoires.
L'arborescence suivante par exemple fonctionnerait:
Merci de poster les réponses au groupe afin d'en faire profiter à tous
"Débutant" <nabele@cid-sa.com> wrote in message
news:0fbb01c3898b$8fbddcb0$a401280a@phx.gbl...
Bonjour,
Déjà , je tiens à m'excuser, car je n'y connais vraiment
rien en VBS.
J'aimerai lire un fichier texte , rechercher dans ce
fichier le mot "EXEMPLE" et le remplacer par "TOTO".
Est-ce possible ?
J'aimerai aussi que ce VBS modifie tous les fichiers se
trouvant dans une arboresence.
CAD; un repertoire principal puis en dessous que des
repertoires A - B - C avec chaque fois dans ces sous
répertoires le fichier texte en question.
En VBS, tu dois utiliser la Scripting Runtime Library (scrrun.dll) qui elle offre le FileSystemObject (FSO) afin d'effectuer des traitements sur des fichiers, répertoires ou lecteurs. Voici un exemple de code en VBS qui reçoit le nom d'un répertoire en paramètre ainsi que le mot à chercher et le mot par laquelle nous devons le remplacer.
Private Sub ParseFolder(sFolderPath, sFind, sReplace)
Dim fld Dim ts Dim sFileText Dim fso Dim f Dim fld2
' Initialise le FSO ' CreateObject instancie la classe spécifiée (ProgID) Set fso = CreateObject("Scripting.FileSystemObject")
' Obtient le répertoire actuel Set fld = fso.GetFolder(sFolderPath)
' Boucle ses fichiers et effectu le replacement For Each f In fld.Files Call ReplaceTextInFile(f.Path, sFind, sReplace) Next
' Boucle ses sous-répertoires For Each fld2 In fld.SubFolders ' Rappelle la fonction Call ParseFolder(fld2.Path, sFind, sReplace) Next
End Sub
Private Sub ReplaceTextInFile(sFile, sFind, sReplace)
Dim ts Dim fso Dim sFileText Const ForReading = 1 ' utilisé par FSO Const ForWriting = 2 ' utilisé par FSO
' Initialise le FSO Set fso = CreateObject("Scripting.FileSystemObject")
' Ouvre le fichier en lecture Set ts = fso.OpenTextFile(sFile, ForReading, False)
' Lit son contenu sFileText = ts.ReadAll
' Ferme le fichier Call ts.Close
' Ouvre le fichier en écriture Set ts = fso.OpenTextFile(sFile, ForWriting, False)
' Modifie son contenu en remplacant la chaine Call ts.Write(Replace(sFileText, sFind, sReplace))
' Ferme le fichier modifié ts.Close
End Sub '***
Note : La fonction est récursive, elle se rappelle elle même jusqu'à ce qu'il n'y est plus de sous répertoire à fouiller. Tu peux mettre autant de fichiers que tu souhaites dans les répertoires et sous répertoires.
L'arborescence suivante par exemple fonctionnerait:
Merci de poster les réponses au groupe afin d'en faire profiter à tous "Débutant" wrote in message news:0fbb01c3898b$8fbddcb0$ Bonjour,
Déjà , je tiens à m'excuser, car je n'y connais vraiment rien en VBS. J'aimerai lire un fichier texte , rechercher dans ce fichier le mot "EXEMPLE" et le remplacer par "TOTO". Est-ce possible ?
J'aimerai aussi que ce VBS modifie tous les fichiers se trouvant dans une arboresence. CAD; un repertoire principal puis en dessous que des repertoires A - B - C avec chaque fois dans ces sous répertoires le fichier texte en question.