OVH Cloud OVH Cloud

modifier un fichier texte en commande dos

11 réponses
Avatar
J.delmas
Bonjour à tous,
je fais encore appelle à vous pour trouver une sollution que je n'ai trouvé
nul part.

J'ai un fichier txt qui est un fichier de config d'un logiciel.
Mon problème c'est qu'une de ses variable change lors du plantage. (Cette
variable contabilise le nopbre de fois connecté).
J'aimerais par un petit script remplacer la valeur par 0;
Ainsi connecté= 3 deviendrait connecté=0.
Je ne peux pas remplacer le fichier par une version antécédente qui aurait
connecté=0 car il y a d'autres variables qui ne doivent pas être changées.

Merci à tous.

Jacques

10 réponses

1 2
Avatar
---DGI972---
J.delmas a utilisé son clavier pour écrire :
Bonjour à tous,
je fais encore appelle à vous pour trouver une sollution que je n'ai trouvé
nul part.

J'ai un fichier txt qui est un fichier de config d'un logiciel.
Mon problème c'est qu'une de ses variable change lors du plantage. (Cette
variable contabilise le nopbre de fois connecté).
J'aimerais par un petit script remplacer la valeur par 0;
Ainsi connecté= 3 deviendrait connecté=0.
Je ne peux pas remplacer le fichier par une version antécédente qui aurait
connecté=0 car il y a d'autres variables qui ne doivent pas être changées.

Merci à tous.

Jacques


Quelques lignes a adapter:

Const Lecture = 1, Ecriture = 2
Dim fso, f, f1

Set f = fso.OpenTextFile("C:LOGICIELconfig.txt", Lecture)
readalltextfile = f.ReadAll
newtextfile = Replace(readalltextfile, "connecté=3",
"connecté=0")
Set f = fso.OpenTextFile("C:LOGICIELconfig.txt", Ecriture, True)
f.Write newtextfile

DGI972

Avatar
Gilles LAURENT
"J.delmas" <santiag(at)netcourrier.com(eret)re> a écrit dans le message
de news:
| Bonjour à tous,

Bonsoir,

| je fais encore appelle à vous pour trouver une sollution que je n'ai
| trouvé nul part.

[...]

Tout d'abord, est-ce que la réponse à votre dernier Post a été
satisfaisante ?
Pour rappel : "Scripter l'installation de l'accès distant"

Merci de fermer le fil ou de le poursuivre si nécessaire.

--
Gilles LAURENT
http://glsft.free.fr
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
Avatar
J.delmas
j'ai une erreur quand j'execute le script que j'ai un peu modifié
Merci Beaucoup

Const Lecture = 1, Ecriture = 2
Dim fso, f, f1

Set f = fso.OpenTextFile("C:e.txt", Lecture)
readalltextfile = f.ReadAll
newtextfile = Replace(readalltextfile, "connecté=3", "connecté=0")
Set f = fso.OpenTextFile("C:e.txt", Ecriture, True)
f.Write newtextfile


J'ai l'erreur
ligne 4
caract. 1
erreur : objet requis :"
Avatar
---DGI972---
J.delmas a présenté l'énoncé suivant :
j'ai une erreur quand j'execute le script que j'ai un peu modifié
Merci Beaucoup

Const Lecture = 1, Ecriture = 2
Dim fso, f, f1

Set f = fso.OpenTextFile("C:e.txt", Lecture)
readalltextfile = f.ReadAll
newtextfile = Replace(readalltextfile, "connecté=3", "connecté=0")
Set f = fso.OpenTextFile("C:e.txt", Ecriture, True)
f.Write newtextfile


J'ai l'erreur
ligne 4
caract. 1
erreur : objet requis :"


Désolé il manquait le fso:


Const Lecture = 1, Ecriture = 2
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("C:e.txt", Lecture)
readalltextfile = f.ReadAll
newtextfile = Replace(readalltextfile, "connecté=3",
"connecté=0")
Set f = fso.OpenTextFile("C:e.txt", Ecriture, True)
f.Write newtextfile

DGI972

Avatar
J.delmas
C'est trop bien ça fonctionne !
Mon dernier problème est que la valeur de connecté n'est pas forcement 3.
Donc il faudrait que peut importe la valeur ce soit remplacé par 0.
Et ça je ne sais pas non plus faire.

Désolai de vous embéter.
Et merci. Bravo pour la rapidité.


"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de news:
J.delmas a présenté l'énoncé suivant :
j'ai une erreur quand j'execute le script que j'ai un peu modifié
Merci Beaucoup

Const Lecture = 1, Ecriture = 2
Dim fso, f, f1

Set f = fso.OpenTextFile("C:e.txt", Lecture)
readalltextfile = f.ReadAll
newtextfile = Replace(readalltextfile, "connecté=3",
"connecté=0")
Set f = fso.OpenTextFile("C:e.txt", Ecriture, True)
f.Write newtextfile


J'ai l'erreur
ligne 4
caract. 1
erreur : objet requis :"


Désolé il manquait le fso:


Const Lecture = 1, Ecriture = 2
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("C:e.txt", Lecture)
readalltextfile = f.ReadAll
newtextfile = Replace(readalltextfile, "connecté=3", "connecté=0")
Set f = fso.OpenTextFile("C:e.txt", Ecriture, True)
f.Write newtextfile

DGI972





Avatar
Gilles LAURENT
"J.delmas" <santiag(at)netcourrier.com(eret)re> a écrit dans le message
de news:

Bonsoir,

| Mon dernier problème est que la valeur de connecté n'est pas
| forcement 3. Donc il faudrait que peut importe la valeur ce soit
| remplacé par 0.

En complément de la réponse de DGI972 :

--- Coupez ici ---

Option Explicit

' déclaration des variables
Dim oFs, oReg, oFile
Dim strData

' déclaration des constantes
Const ForReading = 1, ForWriting = 2

' initialisation des objets
Set oFs = CreateObject ("Scripting.FileSystemObject")
Set oReg = New RegExp

' définition d'une expression régulière
oReg.IgnoreCase = True
oReg.Pattern = "(rnconnecté)s*?=s*?d+"

' ouverture et lecture du fichier log
Set oFile = oFs.OpenTextFile ("C:e.txt", ForReading)
strData = oFile.ReadAll ()

' remplacement de l'occurence
strData = oReg.Replace (strData, "$1=0")

' écriture des modifications
Set oFile = oFs.OpenTextFile ("C:e.txt", ForWriting)
oFile.Write strData

--- Coupez ici ---

--
Gilles LAURENT
http://glsft.free.fr
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
Avatar
J.delmas
Merci beaucoup à vous deux grace à vous je vais enfin pouvoir corriger ce
problème qui rendait l'utilisation du programme impossible.
Je vais maintenant étudier votre script, j'avais compris le premier mais
celui ci est un peu plus complexe.

Merci
et bravo pour votre solidarité.
Jacques
"Gilles LAURENT" a écrit dans le message de news:

"J.delmas" <santiag(at)netcourrier.com(eret)re> a écrit dans le message
de news:

Bonsoir,

| Mon dernier problème est que la valeur de connecté n'est pas
| forcement 3. Donc il faudrait que peut importe la valeur ce soit
| remplacé par 0.

En complément de la réponse de DGI972 :

--- Coupez ici ---

Option Explicit

' déclaration des variables
Dim oFs, oReg, oFile
Dim strData

' déclaration des constantes
Const ForReading = 1, ForWriting = 2

' initialisation des objets
Set oFs = CreateObject ("Scripting.FileSystemObject")
Set oReg = New RegExp

' définition d'une expression régulière
oReg.IgnoreCase = True
oReg.Pattern = "(rnconnecté)s*?=s*?d+"

' ouverture et lecture du fichier log
Set oFile = oFs.OpenTextFile ("C:e.txt", ForReading)
strData = oFile.ReadAll ()

' remplacement de l'occurence
strData = oReg.Replace (strData, "$1=0")

' écriture des modifications
Set oFile = oFs.OpenTextFile ("C:e.txt", ForWriting)
oFile.Write strData

--- Coupez ici ---

--
Gilles LAURENT
http://glsft.free.fr
Me contacter : http://cerbermail.com/?zoTY7ZkLcD




Avatar
Jean
mais celui ci est un peu plus complexe.


Lire la doc ?

"Regular Expression (RegExp) Object"

http://msdn.microsoft.com/library/en-us/script56/html/05f9ee2e-982f-4727-839e-b1b8ed696d0a.asp

"Replace Method"

http://msdn.microsoft.com/library/en-us/script56/html/810607c5-5926-43d9-b7e8-4126e97000d2.asp

Tout en français ici dedans :

http://download.microsoft.com/download/winscript56/install/5.6/w98nt42kme/fr/scd56fr.exe

Amicalement,

--
Jean - JMST
Belgium

Avatar
jbongran
J.delmas wrote:
Merci beaucoup à vous deux grace à vous je vais enfin pouvoir
corriger ce problème qui rendait l'utilisation du programme
impossible. Je vais maintenant étudier votre script, j'avais compris le
premier
mais celui ci est un peu plus complexe.

Merci
et bravo pour votre solidarité.
Jacques
"Gilles LAURENT" a écrit dans le message de news:

"J.delmas" <santiag(at)netcourrier.com(eret)re> a écrit dans le
message de news:

Bonsoir,

Mon dernier problème est que la valeur de connecté n'est pas
forcement 3. Donc il faudrait que peut importe la valeur ce soit
remplacé par 0.


En complément de la réponse de DGI972 :

--- Coupez ici ---

Option Explicit

' déclaration des variables
Dim oFs, oReg, oFile
Dim strData

' déclaration des constantes
Const ForReading = 1, ForWriting = 2

' initialisation des objets
Set oFs = CreateObject ("Scripting.FileSystemObject")
Set oReg = New RegExp

' définition d'une expression régulière
oReg.IgnoreCase = True
oReg.Pattern = "(rnconnecté)s*?=s*?d+"

' ouverture et lecture du fichier log
Set oFile = oFs.OpenTextFile ("C:e.txt", ForReading)
strData = oFile.ReadAll ()

' remplacement de l'occurence
strData = oReg.Replace (strData, "$1=0")

' écriture des modifications
Set oFile = oFs.OpenTextFile ("C:e.txt", ForWriting)
oFile.Write strData

--- Coupez ici ---

--
Gilles LAURENT
http://glsft.free.fr
Me contacter : http://cerbermail.com/?zoTY7ZkLcD



Il est pourtant très efficace le code de Gilles Laurent (mais je comprend
bien que les expressions régulières ne soient pas vraiment faciles
d'approche)
Allez la version "bourin" que personne ne veut publier ;-)

Const ForReading = 1, ForWriting = 2
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("C:e.txt", ForReading)
Do While f.AtEndOfStream <> True
tmp = f.ReadLine
if Left(tmp, 9) = "connecté=" Then tmp = "connecté=0"
retstring = retstring & tmp & vbCrLf
Loop
f.close
Set f = fso.OpenTextFile("C:e.txt", ForWriting, True)
f.Write retstring
f.close
Set f = Nothing



Avatar
---DGI972---
J.delmas wrote:
Merci beaucoup à vous deux grace à vous je vais enfin pouvoir
corriger ce problème qui rendait l'utilisation du programme
impossible. Je vais maintenant étudier votre script, j'avais compris le
premier
mais celui ci est un peu plus complexe.

Merci
et bravo pour votre solidarité.
Jacques
"Gilles LAURENT" a écrit dans le message de news:

"J.delmas" <santiag(at)netcourrier.com(eret)re> a écrit dans le
message de news:

Bonsoir,

Mon dernier problème est que la valeur de connecté n'est pas
forcement 3. Donc il faudrait que peut importe la valeur ce soit
remplacé par 0.


En complément de la réponse de DGI972 :

--- Coupez ici ---

Option Explicit

' déclaration des variables
Dim oFs, oReg, oFile
Dim strData

' déclaration des constantes
Const ForReading = 1, ForWriting = 2

' initialisation des objets
Set oFs = CreateObject ("Scripting.FileSystemObject")
Set oReg = New RegExp

' définition d'une expression régulière
oReg.IgnoreCase = True
oReg.Pattern = "(rnconnecté)s*?=s*?d+"

' ouverture et lecture du fichier log
Set oFile = oFs.OpenTextFile ("C:e.txt", ForReading)
strData = oFile.ReadAll ()

' remplacement de l'occurence
strData = oReg.Replace (strData, "$1=0")

' écriture des modifications
Set oFile = oFs.OpenTextFile ("C:e.txt", ForWriting)
oFile.Write strData

--- Coupez ici ---

--
Gilles LAURENT
http://glsft.free.fr
Me contacter : http://cerbermail.com/?zoTY7ZkLcD



Il est pourtant très efficace le code de Gilles Laurent (mais je comprend
bien que les expressions régulières ne soient pas vraiment faciles
d'approche)
Allez la version "bourin" que personne ne veut publier ;-)

Const ForReading = 1, ForWriting = 2
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("C:e.txt", ForReading)
Do While f.AtEndOfStream <> True
tmp = f.ReadLine
if Left(tmp, 9) = "connecté=" Then tmp = "connecté=0"
retstring = retstring & tmp & vbCrLf
Loop
f.close
Set f = fso.OpenTextFile("C:e.txt", ForWriting, True)
f.Write retstring
f.close
Set f = Nothing


génial!!!
j'adore la version bourin

DGI972




1 2