Bonjour, j'ai besoin de créer un vbs qui remplace une chaîne de caractères par une autre dans un fichier .txt, mais je ne connait rien en vbs, y t il des gens ici qui savent faire sa ?
Bonjour, j'ai besoin de créer un vbs qui remplace une chaîne de caractères par une autre dans un fichier .txt, mais je ne connait rien en vbs, y t il des gens ici qui savent faire sa ?
tu peu utiliser
replace : pour les "remplacement"
et fileSystem object pour lecture/ecriture fichier ...
ce qui peu donner le sript .vbs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Const ForReading = 1, ForWriting = 2, ForAppending = 8 Dim fso, f Dim st Set fso = CreateObject("Scripting.FileSystemObject") 'Ouverture et lecture du fichier à modifier Set f = fso.OpenTextFile("c:\temp\ecr.txt", ForReading) st = f.readAll f.Close 'ecriture du fichier modifier... aprés avoir remplacer "Salut" par "bonjour".. Set f = fso.OpenTextFile("c:\temp\ecr.txt", ForWriting) f.Write replace(st,"Salut","bonjour") f.close![]()
Bonjour,
Cette question a déjà été abordée de nombreuses fois - je vous rappelle les régles d'utilisation des forums
et que ceux-ci n'ont vocation à répondre qu'à des questions techniques précises ne trouvant pas de réponse sur le site soit par le biais :
* des Faq & Tutoriels
* soit de la fonctionRecherche avancée sur le forum
mot clé : remplacer+texte (par exemple)
Merci d'y penser la prochaine fois afin de ne pas surcharger inutilement la base de données servant de support à la fonction de recherche.
Bonjour bbil, merci se script est parfait
![]()
Bonjour modo ok j'y pensserai la prochaine foie![]()
Je voudrai apporter une petite modification a se script, j'ai commencer un vbs qui ouvre une boite de dialogue pour selectionner un fichier sur le disque dur, voici le code:
Il marche normalement, donc je voudrai une foie que j'ai selectioner un fichier utiliser la variable FileName dans le script de remplacement de chaine de caractère pour désigner le fichier sur le quel agir, voila mon code test:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 ' Simple Code pour le choix d'un fichier Set oUA = CreateObject("UserAccounts.CommonDialog") ' ' Affichage de la boite de dialogue x = oUA.ShowOpen ' ' x renvoie 0 si l'utilisateur n'a pas choisi de fichier wscript.echo x ' ' oUA.FileName est NULL si pas de fichier selectionne wscript.echo oUA.FileName
Ici j'ai remplacer le nom du fichier.txt par la variebl filename, mais se code me renvoie une erreur, voici la capture de l'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ' Simple Code pour le choix d'un fichier Set oUA = CreateObject("UserAccounts.CommonDialog") ' ' Affichage de la boite de dialogue x = oUA.ShowOpen ' ' x renvoie 0 si l'utilisateur n'a pas choisi de fichier wscript.echo x ' ' oUA.FileName est NULL si pas de fichier selectionne wscript.echo oUA.FileName ' ' ' '''' La variable ci dessous devra récupérer le fichier pris en paramètre par la boite '''' de dialogue de selection de fichier: ' Set fich1747 = (FileName.Run) ' ' Const ForReading = 1, ForWriting = 2, ForAppending = 8 Dim fso, f Dim st Set fso = CreateObject("Scripting.FileSystemObject") 'Ouverture et lecture du fichier à modifier Set f = fso.OpenTextFile("FileName", ForReading) st = f.readAll f.Close 'ecriture du fichier modifier... aprés avoir remplacer "Salut" par "bonjour".. Set f = fso.OpenTextFile("FileName", ForWriting) f.Write replace(st,"chaine1","chaine2") f.close
![]()
Déjà si filename est ta variable il ne faut pas la mettre entre "" ..
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set f = fso.OpenTextFile("FileName",
ensuite j'ai pas bien comris ce que tu fais avec
?
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set fich1747 = (FileName.Run)
cette ligne ne te epermet-'elle pas d'afficher le nom complet ( avec chemin) du fichier :
utilise la oUA.FileName ... comme variable... ( il faut peu être y rajouter le chemin ... je vérifie...
Code : Sélectionner tout - Visualiser dans une fenêtre à part wscript.echo oUA.FileName![]()
S'été pour récupérer la variable dans une autre variable mais je l'ai enlever, s'est inutile.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set fich1747 = (FileName.Run)
Affiche bien le nom et le chemin du fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part wscript.echo oUA.FileName
Avec oUA.FileName sa va mieux, mais dans le fichier selcetioner la chaîne de caractère que je veut supprimer est à la foie sur plusieur ligne, le script ne remplace que sur une ligne, faut-il que je fasse une boucle ?
Par ce que je ne sais pas comment faire une boucle.
est tu sur que le remplacement n'est effectué qu'une fois ? ce n'est pas plutôt un probléme majuscule/minuscule....?
equivaut à
Code : Sélectionner tout - Visualiser dans une fenêtre à part replace(st,"chaine1","chaine2")
le -1 ..étant la pour effectuer tous les remplacement possible....!
Code : Sélectionner tout - Visualiser dans une fenêtre à part replace(st,"chaine1","chaine2",1,-1,0)
le dernier 0 = vbBinaryCompare : comparaison binaire (tiens compte des minuscule/majuscule), tu peu le remplacer par 1 = vbTextCompare
: comparaison de texte ...
![]()
Je suis sur que se n'est pas une affaire de majuscule minuscule, avec ceci s'est le même résultat:
Code : Sélectionner tout - Visualiser dans une fenêtre à part replace(st,"chaine1","chaine2",1,-1,0)
ben je sais pas ... tu ne dois pas tout nous dire chez moi cela marche... toutes les chaine1 deviennent chaine2 ... même s'il y en as plusieurs par lignes...
le fichier :
devient ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 TITI chaine1 chaine1 chaine1 chaine1 LOL chaine1 chaine1 mldmsdl chaine1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 TITI chaine2 chaine2 chaine2 chaine2 LOL chaine2 chaine2 mldmsdl chaine2[/code]
Effectivement j'ai négliger un détail asser important, en faite je ne veut pas remplacer la chaîne de caractère dans se script comme je le voulai pour mon premier script mais la je veut la supprimer, voici donc la ligne replace:
Sa doit surement venir de la, mais je ne sais vraiment pas quoi faire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part replace(st,"chaine1","",1,-1,0)
J'ai tester en modifianf la chaîne sa marche super.
non
marche aussi et supprime tous les chaine1 du fichier...!
Code : Sélectionner tout - Visualiser dans une fenêtre à part replace(st,"chaine1","",1,-1,0)
OK merci pour votre aide![]()
Partager