[R] OPérations sur fichier

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
spama
Niveau 1
Niveau 1
Messages : 2
Enregistré le : mer. 23 mars 2011 15:04
Status : Hors ligne

[R] OPérations sur fichier

#1

Message par spama »

Bonjour,

J'ose poster sur le forum, car il me semble bien avoir regardé partout mais sans succès.
Je débute avec AUtoIT et je souhaite éditer le fichier prefs.js de Firefox, afin de permettre à l'utilisateur via un GUI de changer les paramètres. (Ok c'est inutile mais ça me permet d'utiliser Autoit)

Je connais les differentes commandes qui permettent d'ouvrir, lire, ecrire sur un fichier, mais je n'arrive pas à trouver une info sur la recherche d'une séquence de caractères et écrire par dessus
par exemple la ligne user_pref("browser.startup.homepage", "http://www.google.fr");

Si une telle info est dejà indiquée dans le forum veuillez m'excusez pour ce post. Sinon mercide votre aide
Modifié en dernier par spama le jeu. 24 mars 2011 12:03, modifié 1 fois.
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] OPérations sur fichier

#2

Message par Iste »

Il n'y a pas de solution magique pour "écrire par dessus une chaine", pour cela, il vous faudra la casser et la reconstruire.
Les outils dont vous aurez besoin pour cela se trouvent en grande parti dans la section String Management de la doc.

Je ne sais pas comment est formé ce fichier, mais si il est du genre "une ligne, une info", vous pourrez déja utiliser StringSplit() avec la macro @CRLF
Signez ici
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..] OPérations sur fichier

#3

Message par sksbir »

bonjour

Le mieux (surtout en cas de modifications multiples ) consiste à charger le fichier dans un tableau à l'aide de _FileReadToArray, à faire les modifications dans le tableau, puis à réécrire le tout avec _FileWriteFromArray
spama
Niveau 1
Niveau 1
Messages : 2
Enregistré le : mer. 23 mars 2011 15:04
Status : Hors ligne

Re: [..] OPérations sur fichier

#4

Message par spama »

Merci bien pour ces informations.
Je vais me pencher là dessus. En attendant je mets le sujet sur [R] car comprendre toutes les fonctions, macros et les appliquer pour mes besoins va me prendre un peu de temps.

A bientôt
(j'aurai toujours un oeil sur le fofo ;) )
vince59
Niveau 2
Niveau 2
Messages : 22
Enregistré le : dim. 09 janv. 2011 20:24
Status : Hors ligne

Re: [R] OPérations sur fichier

#5

Message par vince59 »

Pour remplacer du texte, le plus simple est d'utiliser les expressions régulières (regular expression).
AutoIt le permet avec les fonctions : StringRegExpReplace et StringRegExp.

Pour remplacer la page de démarrage, ça donnerait quelque chose comme ça :

Code : Tout sélectionner

; lire le fichier d'origine ligne par ligne
; pour chaque ligne, tester si la ligne contient le mot-clef, et créer une nouvelle ligne avec la nouvelle valeur
; écrire les lignes modifiées et non modifiées dans un fichier temporaire (plus facile pour le debug)
; remplacer le fichier d'origine par le fichier temporaire
; hypothèse : $line contient la ligne lue, $new_value contient la nouvelle valeur, $new_line est la ligne modifiée

$new_value = "www.google.fr"
If (StringRegExp($line, "user_pref(\"browser\.startup\.homepage\"") == 1) Then
$new_line = "user_pref(\"browser.startup.homepage\", \"" & $new_value & ""\");"
Endif
 
Je n'ai pas testé ce bout de code :oops: mais ça devrait ressembler à ça.
Répondre