AutoIt Français

Nouveau forum : http://www.autoitscript.fr/
 
AccueilFAQRechercherS'enregistrerMembresGroupesConnexionhttp://www.autoitscript.fr

Partagez | 
 

 Chercher une valeur dans une varaible ? [RESOLU]

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
corrs78
Membre


Nombre de messages : 24
Date d'inscription : 17/02/2007

MessageSujet: Chercher une valeur dans une varaible ? [RESOLU]   2007-04-12, 14:11

Je me trouve encore devant un nouveau problème (plutot question)
Heuresement que ce forum existe.

Je lis un fichier grace à la fonction Fileread

[code]
$fichierlu = FileRead (@UserProfileDir & "Application DataMozillaFirefoxprofiles" & $result & "prefs.js", 10000)
if $fichierlu = "safebrowsing" then
MsgBox(0, "Fichier à jour","modification déjà effectuée")
Exit
EndIf
[/code]

Si je trouve la l'expression "safebrowsing" j'affiche un message et je quitte.
Seul problème, je ne sais pas comment mettre un "joker"

En SQL suis abitué de mettre %variable% ce qui me permet de valider la réponse meme si il y a des données avant ou après variable.

Merci.


Dernière édition par le 2007-04-13, 17:53, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
VooDoo
Modérateur
Modérateur


Nombre de messages : 161
Date d'inscription : 11/12/2006

MessageSujet: Re: Chercher une valeur dans une varaible ? [RESOLU]   2007-04-12, 14:36

Je ne vois pas trop l'utilité du joker mais ce script te permetra d'analyser chaque ligne...

[code]#include <file.au3>
Dim $aRecords
If Not _FileReadToArray(@UserProfileDir & "\Application
Data\Mozilla\Firefox\profiles\" & $result & "\prefs.js",$aRecords) Then
MsgBox(4096,"Error", " Error reading log to Array error:" & @error)
Exit
EndIf
For $x = 1 to $aRecords[0]
Msgbox(0,'Record:' & $x, $aRecords[$x])
if StringInStr($arecords[$x],"safebrowsing",1) <>0 then exit Msgbox(0,"Trouver ! "," Ligne : " & $x & @Crlf & $aRecords[$x])
Next
Msgbox(0,"Fini","Pas trouvé....")
[/code]

_________________
[img]http://img87.imageshack.us/img87/7941/autoit6oy.jpg[/img]
[url=http://autoit-fr.realbb.net/AutoIt-v3-c2/Entraide-f5/Regles-t39.htm][i]Lisez les règles ou soyez maudit ![/i][/url]
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
corrs78
Membre


Nombre de messages : 24
Date d'inscription : 17/02/2007

MessageSujet: Re: Chercher une valeur dans une varaible ? [RESOLU]   2007-04-12, 16:13

je vais tester ça, au 1er abord ça me parait assez compliqué.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
corrs78
Membre


Nombre de messages : 24
Date d'inscription : 17/02/2007

MessageSujet: Re: Chercher une valeur dans une varaible ? [RESOLU]   2007-04-12, 16:45

comme un bon débutant que je suis, j'ai collé le code que tu m'a donné dans mon petit script.

Il me donne pas les résultats que je souhaite.

Mon script a pour objectif d'ajouter une ligne dans le fichier préférence de configuration Firefox.
Cette ligne me permet de désactiver la fonction de verif de contrfaçon qui fait des requetes en boucle vers le routeur de ma société (proxy).
j'ai deux problème (coir commentaires)
1 - je dois vérifier que la ligne n'existe pas déja, afin d'eviter d'ajoputer un doublon.
2 - je dois ecrire cette ligne dans le fichier, mais je suis embêté par les doubles cotes

voilà le script : (un peu fouilli, mais j'espère que vous comprendrais mieux l'objectif).
[code]
;;; Script de configuration firefox ;;;
;;; Desactivation de la fontion "prevenir si contrefaçon" ;;;
;;; Steeve THIRIOT ;;;

#NoTrayIcon

;;; On vérifie la version de firefox ;;;
$VerFirefox = RegRead("HKEY_LOCAL_MACHINESOFTWAREMozillaMozilla Firefox", "CurrentVersion")
$file = FileOpen(@UserProfileDir & "Application DataMozillaFirefoxprofiles.ini", 0)

; On verifie si on peut ouvrir le fichier
If $file = -1 Then
MsgBox(0, "Erreur", "Impossible d'ouvrir le profiles.ini")
Exit
EndIf

if $VerFirefox = 2 then

$profilFirefox = FileReadLine($file, 7)
MsgBox(0, "Ligne lue:", $profilFirefox)
FileClose($file)

; On tronque la variable pour trouver le code profile
$var=stringsplit($profilFirefox,"/")
MsgBox(0,"debug",$var[2])
$result = $var[2]


; On test si la focntion de verification de contrefaçon n'est pas déjà activée
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

$fichierlu = FileRead (@UserProfileDir & "Application DataMozillaFirefoxprofiles" & $result & "prefs.js", 10000)
if $fichierlu = "browser.safebrowsing.enabled" then
MsgBox(0, "Erreur","deja présent")
Exit
EndIf
;;;[ POSE PROBLEME ] Doubles Cotes
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



; On ouvre le fichier préférence de firefox que l'on doit modifier
$prefs_firefox = FileOpen(@UserProfileDir & "Application DataMozillaFirefoxprofiles" & $result & "prefs.js", 1)

; On verifie si on peut ouvrir le fichier
If $prefs_firefox = -1 Then
MsgBox(0, "Erreur", "Impossible d'ouvrir le fichier préférence de firefox.")
Exit
EndIf

; Ajout de la ligne => Desactivation de la fontion "prevenir si contrefaçon" ;
FileWrite($prefs_firefox, "user_pref("browser.safebrowsing.enabled", false);") ;;;[ POSE PROBLEME ] Doubles Cotes

else
MsgBox(4096, "!!! Attention !!!", "Version de Firefox antérieur à 2.0")
EndIf
[/code]
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
VooDoo
Modérateur
Modérateur


Nombre de messages : 161
Date d'inscription : 11/12/2006

MessageSujet: Re: Chercher une valeur dans une varaible ? [RESOLU]   2007-04-12, 17:15

Apparement si tu as l'option "browser.safebrowsing.enabled" cela veut dire que la ligne existe deja. Donc il faut lire chaque ligne de pref.js et chercher la phrase dedans !

La partie

[code]$fichierlu = FileRead (@UserProfileDir &
"Application DataMozillaFirefoxprofiles" & $result & "prefs.js", 10000)
if $fichierlu = "browser.safebrowsing.enabled" then
MsgBox(0, "Erreur","deja présent")
Exit
EndIf[/code]

Est inaproprié car $fichierlu renvoye les 10000 premiers caractéres du fichier.

Auapravant tu as deja fait le test si le fichier etait opérationnel donc à la place de ce code je te propose le test suivant :

[code]$file = FileOpen(@UserProfileDir & "Application DataMozillaFirefoxprofiles" & $result & "prefs.js", 0) ;j'ouvre le fichier en lecture

While 1
$line = FileReadLine($file) ;je lis la ligne ( il incremente la ligne tout seul )
If @error = -1 Then ExitLoop ;j'arrete quand je touche le bout du fichier
if stringinstr($line,"browser.safebrowsing.enabled") <>0 Then ;si j'ai trouver ce bout de texte dans la ligne alors je renvoye la position du texte donc <>0
MsgBox(0, "Erreur","deja présent")
Exit
EndIf
Wend

FileClose($file)[/code]

Booon et apres j'ai regardé le fichier pref.js....qu'est ce qui te poses probléme ? Et qu'appelles tu les cotes ?

Edit: je crois que j'ai trouvé xD ce que tu appelle cote c'est un slash xD => //. J ai vu sa dans le fichier. Chaque chemin est separer par un double slash.

_________________
[img]http://img87.imageshack.us/img87/7941/autoit6oy.jpg[/img]
[url=http://autoit-fr.realbb.net/AutoIt-v3-c2/Entraide-f5/Regles-t39.htm][i]Lisez les règles ou soyez maudit ![/i][/url]
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
corrs78
Membre


Nombre de messages : 24
Date d'inscription : 17/02/2007

MessageSujet: Re: Chercher une valeur dans une varaible ? [RESOLU]   2007-04-12, 18:02

Non les "doubles cotes" (guillements)

FileWrite($prefs_firefox,
"user_pref("browser.safebrowsing.enabled", false);")
;;;[ POSE PROBLEME ] Doubles Cotes

exemple : $var = "je veux afficher "Salut".comment va ? "

Ma chaine de caractère comporte des guillmets qui me posent problème : (ma variable est cette valeur (guillemets comprises)

"user_pref("browser.safebrowsing.enabled", false);"
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
VooDoo
Modérateur
Modérateur


Nombre de messages : 161
Date d'inscription : 11/12/2006

MessageSujet: Re: Chercher une valeur dans une varaible ? [RESOLU]   2007-04-12, 22:29

Tu connnais pas les "insertcote" ?

exemple : $var = "je veux afficher 'Salut'.comment va ? " essaye avec ce mode la

"a" := Extérieur
'a' := interieur.

_________________
[img]http://img87.imageshack.us/img87/7941/autoit6oy.jpg[/img]
[url=http://autoit-fr.realbb.net/AutoIt-v3-c2/Entraide-f5/Regles-t39.htm][i]Lisez les règles ou soyez maudit ![/i][/url]
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sylvanie
Modérateur
Modérateur


Nombre de messages : 300
Date d'inscription : 10/03/2007

MessageSujet: Re: Chercher une valeur dans une varaible ? [RESOLU]   2007-04-13, 00:47

cf en bas (je me suis banané dans les posts ...)


Dernière édition par le 2007-04-13, 00:51, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sylvanie
Modérateur
Modérateur


Nombre de messages : 300
Date d'inscription : 10/03/2007

MessageSujet: Re: Chercher une valeur dans une varaible ? [RESOLU]   2007-04-13, 00:48

[quote:e2dd="sylvanie"]A la rigueur, comme le fichier de conf n'est pas gros, on peut le bufferiser en entier et traiter les modifs dans une même grosse ligne

[code]
.
.
.

; On test si la focntion de verification de contrefaçon n'est pas déjà activée
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
$title2 = @UserProfileDir & "Application DataMozillaFirefoxprofiles" & $result & "prefs.js"
$fic=FileOpen($title2,1)
$fichierlu = FileRead($fic, FileGetSize($title2)) ; on bufferise tout le fichier, faire attention à la capacité en RAM dans certains cas
;on teste l'existence si ok alors on change true en false si nécessaire
StringInStr($fichierlu,'browser.safebrowsing.enabled')
if (@error<>1) Then
$fichierlu=StringReplace($fichierlu,'user_pref("browser.safebrowsing.enabled", true);','user_pref("browser.safebrowsing.enabled", false);')
FileClose($fic)
$fic=FileOpen($title2,2);on recopie tout le buffer
FileWrite($fic,$fichierlu)
Else
FileWriteLine($fic,'user_pref("browser.safebrowsing.enabled", false);')
EndIf
FileClose($fic)
Exit
else
MsgBox(4096, "!!! Attention !!!", "Version de Firefox antérieur à 2.0")
EndIf

[/code]

Comme je n'ai pas le renard sous la main, j'ai juste vérifier la syntaxe, mais n'ai pas pu vérifier en vrai. J'ai ajouter le cas où la ligne peut exister mais en étant fixée à true[/quote]
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: Chercher une valeur dans une varaible ? [RESOLU]   2007-04-13, 14:38

pour les doubles quotes on peut indiquer aussi [b]chr[/b]([color=red]34[/color]) ?

merci d'avance
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
corrs78
Membre


Nombre de messages : 24
Date d'inscription : 17/02/2007

MessageSujet: Re: Chercher une valeur dans une varaible ? [RESOLU]   2007-04-13, 17:08

seul problème, la ligne (variable) que je dois ecrire dans mon fichier comporte des guillemets, donc si je met des 'insertcotes' ma valeur ne sera pas interprété de la meme façon par le progrmme tiers.

Clairemement, je doit ecrire cette ligne dans un fichier :
user_pref("browser.safebrowsing.enabled", false);


(elle comporte deja des guillemets)
donc ceci ne fonctionne pas
FileWrite($prefs_firefox, "user_pref("browser.safebrowsing.enabled", false);")
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: Chercher une valeur dans une varaible ? [RESOLU]   2007-04-13, 17:21

[color=black]'user_pref("browser.safebrowsing.enabled", false);'[/color]
sauf erreur

*edit


Dernière édition par le 2007-04-14, 00:03, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
corrs78
Membre


Nombre de messages : 24
Date d'inscription : 17/02/2007

MessageSujet: Re: Chercher une valeur dans une varaible ? [RESOLU]   2007-04-13, 17:53

c'est ça, ça fonctionne, en fait il faut mettre les insertcotes à l'exterieur: (l'inverse du SQL, j'ai du mal à me passer de certains automatismes, désolé )

'user_pref("browser.safebrowsing.enabled", false);'

Ok. merci à tous pour votre aide.

pour la fonction de recherche de chaine de carcatère dans un fichier j'ai opté pour la solution de voodoo qui fonctionne trés bien :

[code]
$file = FileOpen(@UserProfileDir & "Application
DataMozillaFirefoxprofiles" & $result & "prefs.js", 0) ;j'ouvre
le fichier en lecture

While 1
$line = FileReadLine($file) ;je lis la ligne ( il incremente la ligne tout seul )
If @error = -1 Then ExitLoop ;j'arrete quand je touche le bout du fichier

if stringinstr($line,"browser.safebrowsing.enabled") <>0 Then
;si j'ai trouver ce bout de texte dans la ligne alors je renvoye la
position du texte donc <>0
MsgBox(0, "Erreur","deja présent")
Exit
EndIf
Wend

FileClose($file)
[/code]
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Chercher une valeur dans une varaible ? [RESOLU]   Aujourd'hui à 22:45

Revenir en haut Aller en bas
 
Chercher une valeur dans une varaible ? [RESOLU]
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Placer animation flash dans un coin [RESOLU]
» Ajouter du texte dans un textbox . [ RESOLU ]
» Ouvrir un executable placer dans un dossier (RESOLU)
» Récuperer la valeur d'un calendrier [RESOLU]
» Bibliothèque de sous-programmes

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
AutoIt Français :: AutoIt v3 :: Entraide-
Sauter vers: