[VBS] problème

topjohn Messages postés 16 Date d'inscription mardi 18 août 2009 Statut Membre Dernière intervention 5 janvier 2011 - 5 janv. 2011 à 11:33
topjohn Messages postés 16 Date d'inscription mardi 18 août 2009 Statut Membre Dernière intervention 5 janvier 2011 - 5 janv. 2011 à 22:18
Boujour,

je ne sais pas si je poste au bon endroit, mais j'ai pas trouvé ou poster mon problème.

J'ai besoin de supprimer une ligne dans un fichier texte, pour se faire j'ai créé un script VBS et j'utilise la fonction de remplacement.

Seulement voila dans la ligne que je veux supprimer il y a ce caractère "" et c'est la que j'ai un problème.

En gros voici le fichier de départ:

tata\tata
tutu_tutu
toto\toto

Je voudrais supprimer la ligne toto\toto (ou autre), pour ce faire j'utilise ce script:

Set fso = CreateObject("Scripting.FileSystemObject")
Set oRegEx = New RegExp
oRegEx.Global = true
oRegEx.Pattern = "toto\toto"
Set monFichier = fso.OpenTextFile(list,1)
sStream = monFichier.ReadAll
monFichier.Close
sNewStream = oRegEx.Replace(sStream,"")
if InStr(sNewStream,vbLf)=1 Then sNewStream = Replace(sNewStream,"",1,1)
Set monFichier = fso.OpenTextFile(list,2)
monFichier.Write sNewStream
monFichier.Close

Mais cela ne fonctionne pas, pourtant quand je demande de supprimer juste "toto" ça fonctionne bien.
Si quelqu'un à la solution je suis preneur car cela fait 2jours que je suis sur le problème et je ne trouve pas.

Merci.

1 réponse

topjohn Messages postés 16 Date d'inscription mardi 18 août 2009 Statut Membre Dernière intervention 5 janvier 2011
5 janv. 2011 à 22:18
Je me répond à moi même, je pense avoir trouvé un début de réponse, et écrivant ceci:

oRegEx.Pattern = "toto"+"\"+"toto"

seulement voila en écrivant directement le code ça fonctionne, mais si je place ce code dans un fichier txt (par exemple code.txt) et que je lise ce fichier dans mon code pour l'incruster dans le pattern, ça ne fonctionne pas.

Voici ce que je mets:

Set f = Fso.OpenTextFile("code.txt", 1, false)
test = f.ReadLine
Set fso = CreateObject("Scripting.FileSystemObject")
Set oRegEx = New RegExp
oRegEx.Global = true
oRegEx.Pattern = test
Set monFichier = fso.OpenTextFile(fichier_a_modifier.txt,1)
sStream = monFichier.ReadAll
monFichier.Close
sNewStream = oRegEx.Replace(sStream,"")
if InStr(sNewStream,vbLf)=1 Then sNewStream = Replace(sNewStream,"",1,1)
Set monFichier = fso.OpenTextFile(list,2)
monFichier.Write sNewStream
monFichier.Close



alors j'ai essayé plusieurs chose dans le fichier code.txt mais sans résultat.
J'ai essayé tout ça:

"toto"+"\"+"toto"
toto"+"\"+"toto
"toto"+""+"toto"
toto"+""+"toto
"toto\toto"
toto\toto

pourtant quand je marque juste toto dans le fichier code.txt, ça m'éfface bien les noms toto dans le fichier_a_modifier.txt (mais il reste tjrs le backslash), cela prouve bien qie la fonction fonctionne mais pas avec le backslash.

Une idée ????
0
Rejoignez-nous