[R] Problème d’addition de variable ?!

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Nxb
Niveau 2
Niveau 2
Messages : 15
Enregistré le : jeu. 27 oct. 2011 13:34
Status : Hors ligne

[R] Problème d’addition de variable ?!

#1

Message par Nxb »

Bonjour à tous , Je viens de commencer l'autoIT grâce au Tutorial sur Sdz.

Voila mon problème :

Code : Tout sélectionner

Global $text = "Bonjour c la :"
Global $chiffre = 0
Global $un = 1
Global $motcomposer = ''
While 1
    _somme($chiffre)
    $motcomposer = $text & $chiffre
WEnd

Func _somme($g)
    Return $g = $g + $un
EndFunc
 
Ce programme est censé renvoyer :

Bonjour c la 1
Bonjour c la 2
...

Mais sa ne marche pas je comprends pas pourquoi ? :!: sans doute une erreur énorme de débutant ! :(
J'ai aussi assez avant de pas crée la variable $un et juste faire +1 mais même chose :arrow:
Merci pour vos réponse d'avance

Nxb
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [R] Problème d’addition de variable ?!

#2

Message par ZDS »

Bonjour.

Modifie tout d'abord ton titre ([R] signifie que ton problème est résolu, ce qui n'est pas le cas, si? Mets [..] à la place)

Sinon, voici une correction possible :
1- Tu dis que ton script ne retourne rien, mais tu n'as mis aucune fonction permettant d'afficher du texte ! Exemple, MsgBox, TrayTip, ToolTip, ConsoleWrite, ...
2- Ta fonction _somme pose de nombreux soucis :
2.1- Tu passes la variable $g en parametre alors qu'elle est déjà en variable globale, donc il en crée une seconde en locale (ou pas, je ne sais plus, mais dans tous les cas, c'est une erreur de conception en terme de recouvrement de code).
2.2- Tu fais un return dans le corps de la fonction, mais dans l'appel tu ne récupères pas la valeur.
2.3- Dans ton return tu fais un return $g = $g + $un, Autoit interprete ça comme une equation à vérifier, et non une affectation ! C'est comme si en Java tu faisais return (g == g + un);

Bref, avant de continuer, je te conseille de relire le tout début du tutoriel du SdZ, car je pense que tu pourrais en apprendre beaucoup (je ne suis pas là pour me foutre de toi, je tente de t'aider sur non pas "une erreur énorme de débutant", mais plusieurs énormes erreurs de débutant). Voici tout de même une correction possible :
► Afficher le texteCorrection
A bientôt.
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
Avatar du membre
Ahbadiane
Niveau 5
Niveau 5
Messages : 139
Enregistré le : jeu. 20 déc. 2007 22:39
Localisation : Paris
Status : Hors ligne

Re: [R] Problème d’addition de variable ?!

#3

Message par Ahbadiane »

Bonjour NxB
Voici une version corrigée et commentée

Code : Tout sélectionner

Global $text = "Bonjour c la :"
Global $chiffre = 0
Global $un = 1
Global $motcomposer = ''
While $chiffre < 999 ; Mettre une condition de fin sinon le programme va tourner indéfiniment
    $chiffre = _somme($chiffre) ; affecter le chiffre à la fonction
    $motcomposer = $text & $chiffre
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $motcomposer = ' & $motcomposer & @crlf) ; Ajouter juste pour "voir" le résultat
WEnd

Func _somme($g)
    Return $g + $un ; Retourner le somme et non ($g = $g + $un) qui est un test : $g est-il égal à $g + $un ?
EndFunc
Nxb
Niveau 2
Niveau 2
Messages : 15
Enregistré le : jeu. 27 oct. 2011 13:34
Status : Hors ligne

Re: [R] Problème d’addition de variable ?!

#4

Message par Nxb »

Merci d'avoir résolu mon problème :D et désoler pour le [R] mais c'est juste que la dernier fois que j'ai poster une aide il a été direct a la poubelle ^^ parceque j'avais pas mit le bon titre mais apparant cette fois aussi :lol:
Répondre