Page 1 sur 1

[R] Ouverture d'un même fichier texte 2 fois de suite

Posté : lun. 12 janv. 2009 17:00
par keltharak
Bonjour,

J'ai réalisé un script qui me permet de réinitialiser des paramètres d'une application avant de créer une image de ma machine, une sorte de sysprep perso si vous voulez. Le fonctionnement est relativement simple puisqu'il me suffit de modifier des ligne dans un fichier texte, plus précisement de suprimer des valeurs dans un fichier ini. Ma procédure est donc de faire une première passe dans le fichier en modifiant mes paramètres, puis une deuxième ou je vérifie cette fois que mes paramètres on la bonne valeur (rien du tout en fait..) tout en ayant pris soin de fermer proprement mon fichier ini entre les 2 lectures.
Dans le cas général tout ce passe bien, mais en testant mon script je me suis aperçu que si je met mon fichier ini en lecture seule, rien ne va plus ! la fonction _FileWriteToLine renvoi un code de réussite d'écriture et pire, lors de la vérification le script me trouve les "modifications" effectuées, alors que mon fichier est toujours en lecture seule et n'est bien sur pas modifier lorsque je l'ouvre ensuite avec notepad.
J'en suis arrivé à la conclusion que ce fichier est stocké en mémoire pendant toute la durée d'exécution du script mais cela pose un gros problème pour moi. Pour être bien clair, je cherche à être sûr que ma vérification est correcte, je doit donc être certain de lire les informations "réelles" de mon fichier ini lors du second passage.

Existe-il un moyen de vider un buffer ou qqch dans le genre pour s'affranchir de ce problème ?

Jérémie Abeilhou

Re: [...] Ouverture d'un même fichier texte 2 fois de suite

Posté : lun. 12 janv. 2009 20:43
par Tlem
Utilisez comme il se doit la fonction FileOpen en mode lecture pour la première passe puis en mode écriture pour la deuxième.
Si le handle retourné est -1 alors erreur.
Jetez un oeil sur l'aide de la fonction (l'exemple est très parlant).

Re: [R] Ouverture d'un même fichier texte 2 fois de suite

Posté : mer. 14 janv. 2009 10:12
par keltharak
Bonjour,
Merci pour le conseil mais j'ai finalement trouvé la solution tout seul, le problème principal venait d'une erreur de frappe dans l'expression régulière de vérification. Par contre la fonction _FileWriteToLine me renvoi maintenant les bons code retour sans que je ne modifie mon script pour autant... mystère !

Merci bcp en tout cas.