AutoIt Français

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

Partagez | 
 

 Commande While

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


Nombre de messages : 9
Date d'inscription : 29/03/2007

MessageSujet: Commande While   2007-06-21, 11:34

Bonjour!

Je souhaite supprimer une clé de registre via [b]Regdelete[/b] en utilisant la fonction [b]RunAsSet[/b]. J'aimerais savoir comment procéder pour inclure plusieurs mots de passe administrateur dans le script (via la fonction [b]While[/b] peut-être?) afin d'éviter d'avoir à créer différents scripts pour les différents mot de passe.
Merci de me répondre.
Cordialement.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Tlem
Admin
Admin


Nombre de messages : 39
Age : 49
Localisation : Bordeaux
Date d'inscription : 11/05/2007

MessageSujet: Re: Commande While   2007-06-21, 23:23

La question n'est pas des plus explicite, mais je suppose que vous voulez utiliser le meme script sur différentes machines dans le but de supprimer cette fameuse clé !

Dans ce cas utilisez plutot une bouche For, et une variable tableau qui contiendrait tous les mots de passe.

[code]; Déclaration des variables Mot de Passe.
Dim $MDP[5] = ["Mot de Passe 1", "Mot de Passe 2","Mot de Passe 3","Mot de Passe 4","Mot de Passe 5"]

; La boucle
For $i =1 to Ubound($MDP)-1
; On controle que le Login/mot de passe s'est bien dérouler.
$Res = RunAsSet ( "Administrateur", "", $MDP[$i])
; Si Login ok, alors on execute le code.
If $Res = 1 Then
votre code ...
EndIf
Next[/code]

_________________
Le [b]"ça ne marche pas"[/b] est une conséquence commune découlant de beaucoups trops de raisons potentielles ...

Salutations.
Thierry
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
carbaba
Débutant
Débutant


Nombre de messages : 9
Date d'inscription : 29/03/2007

MessageSujet: Re: Commande While   2007-06-22, 11:49

Bonjour Thierry,

Merci de m'avoir répondu!Pourrais-tu m'expliquer ce que signifie ce passage du script: [b]Ubound($MDP)-1[/b], car je ne saisis pas le sens de la fonction Ubound...

Merci.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Tlem
Admin
Admin


Nombre de messages : 39
Age : 49
Localisation : Bordeaux
Date d'inscription : 11/05/2007

MessageSujet: Re: Commande While   2007-06-22, 19:22

En lisant la documentation, vous arriez pu trouver ceci :
[code]UBound :
Returns the size of array dimensions.

UBound ( Array [, Dimension] )


Parameters :
Array : The array variable which is being queried.

Dimension : [optional] Which dimension of a multi-dimensioned array to report the size of. Default is 1, which is the first dimension. If this parameter is 0, the number of subscripts in the array is returned.

Return Value :
Success: Returns the size of the array dimension.

Failure: Returns 0 and sets @error:

1 = Array given is not an array.
2 = Array dimension is invalid.[/code]

En bon Francais, cela veut dire que Ubound($MDP) retourne la taille du tableau $MDP, mais comme il démarre de 0, il faut enlever 1 pour avoir la taille du tableau de 1 à X.
$MDP[0] est sensé contenir la taille du tableau, mais dans certaines conditions, cela n'est pas vrai ... et c'est pour cela qu'il est mieux d'utiliser Ubound.

_________________
Le [b]"ça ne marche pas"[/b] est une conséquence commune découlant de beaucoups trops de raisons potentielles ...

Salutations.
Thierry
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: Commande While   2007-06-25, 09:08

Excellent

j'ai une tite question concernant le ubound j'en comprend son utilisation mais si on connait d'avance le "nombre" se trouvant dans le (array) comme pour ton exemple

genre $x = 0 to 4 au lieu de $x=0 to ubound($pass) - 1

est-ce bon ? ou faut garder l'idée du tableau

encore merci tlem
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Tlem
Admin
Admin


Nombre de messages : 39
Age : 49
Localisation : Bordeaux
Date d'inscription : 11/05/2007

MessageSujet: Re: Commande While   2007-06-26, 00:23

Dans mon exemple, le tableau à bien une taille de 5 variables, et donc j'aurais pu simplifier à :[code]For $i =1 to 5[/code]

Mais les bonnes habitudes ce prennent dés le départ, et donc comme on me l'à signaler sur le forum Anglais, il vaut mieux passer par l'utilisation du Ubound (C'est plus sure).

Dans le cas d'une boucle simple, ou les variables sont définient par le concepteur du programme, et ne risque pas d'ètre modifiées, alors la solution simple peut etre utilisée sans risque.

_________________
Le [b]"ça ne marche pas"[/b] est une conséquence commune découlant de beaucoups trops de raisons potentielles ...

Salutations.
Thierry
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: Commande While   2007-06-28, 22:51

ok, merci de l'info

comme tu l'a signaler, il ne retournera pas le nombre d'element se trouvant dans le tableau par quel procedure on peut la retourner si c'est faisable , pourquoi cette question , c'est pour donnée l'info a cmdline[0] pour le nombre d'élèment.

si on peut répondre "poster" [url=http://autoit-fr.realbb.net/AutoIt-v3-c2/Entraide-f5/Question-sur-le-string-array-regular-expression-t126-60.htm]là[/url]

encore merci
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Tlem
Admin
Admin


Nombre de messages : 39
Age : 49
Localisation : Bordeaux
Date d'inscription : 11/05/2007

MessageSujet: Re: Commande While   2007-06-29, 07:45

[quote:1e09="ani"]par quel procedure on peut la retourner si c'est faisable[/quote]
Avec Ubound comme décrit dans le 2iem post.

[quote:1e09="ani"]pourquoi cette question , c'est pour donnée l'info a cmdline[0] pour le nombre d'élèment.[/quote]
Je doute qu'il y ai besoin de cela pour cmdline, car au lancement, de l'executable, cmdline[0] contient toujours le bon nombre de paramètres envoyé au programme, donc il n'a à pas de raison de ne pas faire confiance à Autoit!

_________________
Le [b]"ça ne marche pas"[/b] est une conséquence commune découlant de beaucoups trops de raisons potentielles ...

Salutations.
Thierry
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: Commande While   2007-06-29, 13:10

faut m'excuser tlem, mais je comprend pas trop , je reprend ton exemple , pourquoi tu commence ton tableau à 1 au lieu de zero dans la boucle for ? j'ai test avec 0 et 1 ,, pour le premier exemple faut creer un tableau ?

[code]Dim $MDP[5] = ["Mot de Passe 1", "Mot de Passe 2","Mot de Passe 3","Mot de Passe 4","Mot de Passe 5"]
; La boucle
For $i =0 to Ubound($MDP)-1 ; je commence a zero
$Res = RunAsSet ( "Administrateur", "", $MDP[$i])
If $Res = 1 Then
msgbox(0,"",$mdp[$i] & " " & $mdp[0])
EndIf
Next[/code]


la valeur $mdp[0] ne renvoi pas le nombre total du array (je comprend rien a anglaiss donc...)

si on passe par un stringsplit sa fonctionne
[code]$mdp = stringsplit("Mot de Passe 1,Mot de Passe 2,Mot de Passe 3,Mot de Passe 4,Mot de Passe 5",",")

for $x = 0 to ubound($mdp) - 1
next
msgbox(0,"",$mdp[0])[/code]
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Tlem
Admin
Admin


Nombre de messages : 39
Age : 49
Localisation : Bordeaux
Date d'inscription : 11/05/2007

MessageSujet: Re: Commande While   2007-06-30, 10:20

[quote:8c76="ani"]pourquoi tu commence ton tableau à 1 au lieu de zero dans la boucle for ? j'ai test avec 0 et 1 ,, pour le premier exemple faut creer un tableau ? [/quote]
Par convention, et pour garder la compatibilité avec un tableau créer par une fonction.


[quote:8c76="ani"]
la valeur $mdp[0] ne renvoi pas le nombre total du array (je comprend rien a anglaiss donc...)[/quote]
Effectivement, sur ce point je me suis 'un peut planter'
Lorsque tu crée le tableau à la main, la valeur $x[0] est une variable comme les autres, par contre avec l'utilisation d'une fonction qui renvoie un tableau, cette meme variable renvoie bien la taille du tableau.
D'ou l'intéret de l'utilisation de la fonction Ubound pour le cas 1.

Pour résumé, si on crée un tableau manuellement, la boucle peut démarrer de 0 à Taille du tableau par contre avec l'utilisation d'une fonction qui renvoie un tableau, il faut utiliser la boucle de 1 à Taille du tableau - 1.

_________________
Le [b]"ça ne marche pas"[/b] est une conséquence commune découlant de beaucoups trops de raisons potentielles ...

Salutations.
Thierry
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: Commande While   2007-07-02, 12:39

ok, merci, je commence à comprendre la matière, même si j'ai déjà laissé tombé
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
big_ben3333
Débutant
Débutant


Nombre de messages : 12
Date d'inscription : 18/06/2007

MessageSujet: Re: Commande While   2007-07-02, 19:13

Carbaba, un petit renomage du post avec un titre plus explicite et la mention résolu serait le bienvenue...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Commande While   Aujourd'hui à 16:29

Revenir en haut Aller en bas
 
Commande While
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Résolu] Commande cmd
» commande menu "Enregistrer"
» Commande et retrosignalisation d'aiguilles + RRTC
» nouvelle commande
» Commande de PA.

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