AutoIt Français

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

Partagez | 
 

 Detecter un mot [RESOLU]

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
TeQuila
Débutant
Débutant


Nombre de messages : 10
Date d'inscription : 20/04/2007

MessageSujet: Detecter un mot [RESOLU]   2007-04-22, 17:04

Bonjours a tous, et encore une fois merci de votre précieuse aide pour le sujet "envoi de mail".

J'ai un autre problème

Dans une boite de dialogue, un texte défile. (par exemple celle de winrar lorqu'on extrait des fichier en sfx). J'aimerais donc détecter un texte, plus exatement, un mot : "TERMINER".
Dès que ce mot est détecté, le programme génère l'envoi un mail.

Seulement voila, je ne sais pas du tout comment m'y prendre.

L'aide de AutoIt m'indique cette ligne de code, ainsi qu'[url=http://autoit-fr.realbb.net/AutoIt-v3-c2/Entraide-f5/recuperer-du-texte-dans-une-fentre-dynmaique-t109.htm]un post du foru[/url]
[code]ControlGetText ( "title", "text", controlID )[/code]

L'idée ce serait de mettretout ce qui défile dans cette boite, dans une variable :
[code]$var = ControlGetText ( "Untitled - Notepad", "", "Edit1")[/code]

et ensuite creer un boucle [i][b]dès que[/b][/i] 'TERMINER' = $var [b][i]faire[/i][/b] envoit de mail.

Et ca, je n'ai absolument aucune idée de la facon de pouvoir coder ce jeu d'instructions
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
TeQuila
Débutant
Débutant


Nombre de messages : 10
Date d'inscription : 20/04/2007

MessageSujet: Re: Detecter un mot [RESOLU]   2007-04-22, 18:58

je vien de réosudre seul mon problème, je m'explique :

j'ai mis dans une variable le donnée dans ma boite
[code]$var = ControlGetText ( "Untitled - Notepad", "", "Edit1")[/code]

Dans une autre variable j'ai mis le texte a détecter
[code]$var2 = "TERMINER"[/code]

et j'ai ensuite fait un [b]et logique[/b] entre ces 2 variable
[code]$x = $var And $var2[/code]

$x est alors un booléen : si "TERMINER" est présente dans $var, alors la valeur retournée est 1.
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: Detecter un mot [RESOLU]   2007-04-22, 19:51

Normal que ceci te rende 1, car And renvoie 1 des lors que l'un des deux arg n'est pas false, ou 0
donc si tu compare "Fraise" et "Choux" ça renvoie 1, mais les 2 chaînes ne sont pas vraiment égales ...
Pour le côté st Thomas, copie colle ce test

[code]
$v1="TERMINER"
$v2="DEBUT"
$v3=-3
$test= $v1 And $v2
ConsoleWrite($test)
$test= $v1 And $v3
ConsoleWrite($test)
[/code]

Mais tu y est presque ^^ :
Après avoir stocké des 2 variables, plusieurs tests sont possibles :

if $var1=$var2 then ... (va être vrai si les deux chaînes sont égales modulo la casse exple TERMINER=Terminer est vrai)

if $var1==$var2 , idem mais avec con^rôle de la casse

if Stringinstr($var1,$var2)<>0 signalera que $var2 est une sous chaîne (voir la chaîne complète) de $var1

Choisi ta méthode ^^ et il y en a sûrement d'autre ...
Aleez, une ptite dernière parce que je suis un fan des expr reg :
if StringRegExp($v1,"TERMINER") Then ... mais c'est sortir l'artillerie lourde pour une mouche ^^
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
TeQuila
Débutant
Débutant


Nombre de messages : 10
Date d'inscription : 20/04/2007

MessageSujet: Re: Detecter un mot [RESOLU]   2007-04-23, 00:38

[code]$v1="TERMINER"
$v2="DEBUT"
$v3=-3
$test= $v1 And $v2
ConsoleWrite($test)
$test= $v1 And $v3
ConsoleWrite($test)[/code]

Interessant... les deux tests affichent TRUE, puisque $v1, $v2 et $v3 sont tout différent de 0.
Dans ma logique c'était au moment de la compilation, les variables étaient traduites en binaire, et un et logique ce serait fait à ce moment la, entre les 2 variables. j'ai donc compris mon erreure grace a toi sylvanie.

Ensuite, les 2 variables ont un nombre de caratères différent, la variable pris par la commande ControlGetText est beaucoup plus grande que la deuxième variable : celle qui contient le petit enchainement de lettre que je dois venir détecter dans la grande


je pense que ce code la est le plus appropié
[code]$result = StringInStr("I am a String", "RING")
MsgBox(0, "Search result:", $result)[/code]

Je testerais ca demain
Merci encore sylvanie
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
DidUngar
Membre avancé


Nombre de messages : 78
Date d'inscription : 02/04/2007

MessageSujet: Re: Detecter un mot [RESOLU]   2007-04-23, 00:49

if $var1=$var2 then

Ce n'est pas cesser etre toujours vrai ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://didungar.com/
sylvanie
Modérateur
Modérateur


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

MessageSujet: Re: Detecter un mot [RESOLU]   2007-04-23, 20:44

[quote:d2a3="DidUngar"]if $var1=$var2 then

Ce n'est pas cesser etre toujours vrai ?[/quote]

Pas en Autoit, car dans un if, "=" devient une comparaison et non une assignation comme dans d'autre langage.
Il est vrai qu'en C par exple, si vous avez

[code]
int main()

{
int v1=1;
int v2=2;
if (v1=v2)
printf("Ok %d\n",v1);
return 0;
}
[/code]

Alors non seulemet c'est tjrs vrai (si il n'ya pas d'erreur d'execution), car ici ce n'est pas un teste entre v1 et v2 qui est fait, mais v1 'reçoit' v2.
Et le booléeen renvoyer est "vrai' quand l'opération c'est bien passée.
Et v1=2 en sortie de ce faux test.

voili voilou
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
TeQuila
Débutant
Débutant


Nombre de messages : 10
Date d'inscription : 20/04/2007

MessageSujet: Re: Detecter un mot [RESOLU]   2007-04-24, 18:53

le code fonctionne ! Merci sylvanie.

Mais j'ai un autre problème, il se trouve que le mot terminer s'affiche plusieurs fois !
Est il possible de detecter une phrase du genre :
"mise a jour - terminée"
Ce n'est pas le cas avec la fonction Stringinstr, ni avec StringRegExp.
J'ai jeté un oeil dans l'aide, mais sans succès...
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: Detecter un mot [RESOLU]   2007-04-24, 20:30

Il y a qq chose qui m'échappe , une string peut aussi bien être un mot qu'une phrase complète
Si tu remplaces "terminé" par "mise a jour - terminée"
, ça ne marche pas ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
TeQuila
Débutant
Débutant


Nombre de messages : 10
Date d'inscription : 20/04/2007

MessageSujet: Re: Detecter un mot [RESOLU]   2007-04-24, 21:46

ca ne parche pas avec une phrase, la fonction me renvoi 0.
il faut savoir que la première variable de Stringinstr contient plusieurs lignes.
mais moi non plus, je ne comprends pas pourquoi cela ne fonctionne pas...
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: Detecter un mot [RESOLU]   2007-04-24, 22:17

Peux tu copier coller le contenu des deux variable que tu compares, pour voir ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
TeQuila
Débutant
Débutant


Nombre de messages : 10
Date d'inscription : 20/04/2007

MessageSujet: Re: Detecter un mot [RESOLU]   2007-04-25, 18:43

pardon, c'était tout bete :
pour qu'une phrase soit prise en compte dans une variable, il faut écrire :

[code]$var = ("Mon"&" "&"texte"&" "&"sera"&" "&"pris"&" "&"en"&" "&"compte")[/code]


le sujet est clos, (enfin je pense) (et encore merci a tous)
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: Detecter un mot [RESOLU]   2007-04-25, 21:18

Etrange, normalement
$var ="Mon texte sera pris en compte"
marche très bien, il m'arrive souvent de stocker des contenus de fichier entier dans une seule var...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Detecter un mot [RESOLU]   Aujourd'hui à 22:43

Revenir en haut Aller en bas
 
Detecter un mot [RESOLU]
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Roll-over (Resolu)
» icone(RESOLU par Migau)
» Détecter des liens dans une page web [RESOLU]
» Le message ne se postent pas...[RESOLU]
» [RESOLU] Bidouillage

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