Enregistrer changement dans un texte

Résolu
roro59650 Messages postés 99 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 28 juillet 2011 - 11 mai 2007 à 17:26
roro59650 Messages postés 99 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 28 juillet 2011 - 15 mai 2007 à 10:10
Bonjour bonjour,
Voila, aujourd'hui, je travaille sur un fichier .txt tout con. J'ai un problème tout con aussi :
Comment enregistrer mes modifications??
------------------------------------------------------------
    Set objFso = CreateObject("Scripting.FileSystemObject")
    Set expr = objFso.OpenTextFile (Server.MapPath("Chemain\Texte.txt"))
    Do While Not expr.AtEndOfStream
        Test = Replace (expr,"#COUNTRY#","France")
    Loop
------------------------------------------------------------

Voila voila.
Je n'oublie pas qu'après j'utilise les nothing. Mais il me faut juste pouvoir enregistrer ces modifications.
Désolé de ma bétise et merci d'avance!!

Roro

4 réponses

cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
14 mai 2007 à 17:07
Le "Bad file mode" indique que tu n'as pas ouvert le fichier en écriture/modification mais seulement en lecture.

Essaye objFso.OpenTextFile (Server.MapPath("Chemain\Texte.txt"),8)

Ce paramètre à 3 valeurs possibles :
- 1 pour Lecture (par défaut)
- 2 pour Ecriture (écrase tout le fichier)
- 8 pour Ajout (ajoute des données à la fin du fichier)

La commande a également encore 2 arguments optionnels, cf MSDN Library : OpenTextFile Method.

Bonne journée,
A++

<hr width="100%" size="2" />Nurgle (Antoine) - MSP
3
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
11 mai 2007 à 21:47
Salut,
Là dans ton code, expr n'est pas une chaine de caractères !! Donc faire un Replace dessus ne va pas avoir beaucoup d'effets sur le fichier texte... (d'ailleurs ça m'étonne qu'il ne te claque pas une erreur...)

La méthode OpenTextFile te renvoie un objet de type TextStream. Tu dois donc faire :
expr.Read(nb) ou expr.ReadLine() ou expr.ReadAll() pour lire le contenu du fichier
ou
expr.Write(nb) ou expr.WriteLine() pour écrire dedans...
(ou "nb" correspond au nombre de caractères à lire/écrire)
Et n'oublie pas à la fin un expr.Close() avant de faire le Set expr = Nothing !

cf : la doc
A++

<hr width="100%" size="2" />Nurgle (Antoine) - MSP
0
roro59650 Messages postés 99 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 28 juillet 2011 1
14 mai 2007 à 10:31
Salut,
En fait, je me suis un peu trompé dans le code, le vrai, j'ai mis ça :
------------------------------------------------------------
    Set objFso = CreateObject("Scripting.FileSystemObject")
    Set expr = objFso.OpenTextFile (Server.MapPath("Chemain\Texte.txt"))
    Do While Not expr.AtEndOfStream
        Test = expr.ReadLine
        Test = Replace (Test,"#COUNTRY#","France")
    Loop
    expr.Close
------------------------------------------------------------
J'ai essayé de mettre le .WriteLine Juste après le Test = Replace :
    expr.WriteLine (Test)

Enfin, toujours est-il que je n'ai que trop peu dormi, et que je ne trouve pas pourquoi ça m'indique cette erreur :
    Microsoft VBScript runtime error '800a0036'

    Bad file mode

La ligne est la ligne où j'ai mis le .Writeline
Merci d'avance,

Roro!
0
roro59650 Messages postés 99 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 28 juillet 2011 1
15 mai 2007 à 10:10
Ok, merci beaucoup!
Grâce à toi, ces portes plus que verrouillées se sont ouvertes!
Longue vie à Nurgle, lol!
Allez, bonne journée, et merci encore!!
0
Rejoignez-nous