[R] ContinueLoop et deux boucles array

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Saachaa
Niveau 5
Niveau 5
Messages : 142
Enregistré le : dim. 11 mars 2012 23:29
Status : Hors ligne

[R] ContinueLoop et deux boucles array

#1

Message par Saachaa »

Bonjour :)

Alors voilà, je veux comparer ma lecture de clef à un array. J'essaye donc de boucler dans les deux afin de pouvoir les comparer.

Cependant, je n'obtiens pas ce que je veux car laissé ainsi, la lecture est doublée. J'aime donc tente un continueloop (2) afin de retomber sur ma première boucle qui permuterait sur ma deuxième, avec le nom de variable changé en conséquence.

ContinueLoop me dit que je ne suis pas dans un statement FOR, alors qu'ExitLoop Fonctionne... cherchez l'erreur.
Comment puis-je donc faire ?

Code : Tout sélectionner

#include <file.au3>

Dim $op[3] = _
    ["HKLM\SYSTEM\ControlSet001\Control\SafeBoot\Minimal\Boot file system", _
    "HKLM\SYSTEM\ControlSet001\Control\SafeBoot\Minimal\CryptSvc", _
    "HKLM\SYSTEM\ControlSet001\Control\SafeBoot\Minimal\DcomLaunch"]

Dim $serv[3] = _
    ["Driver Group", _
    "Service", _
    "Service"]

    Local $txt = @DesktopDir & "\P_S.txt", $chk_safemode
    FileDelete($txt)
    _FileCreate($txt)

    For $a = 0 To UBound($op) -1
        $chk = RegRead($op[$a], "")
        For $b = 0 To UBound($serv) -1
            If StringCompare($serv[$b], $chk, 2) = 0 Then
                FileWriteLine($TXT, "[OK] : [" & $op[$a] & "] : " & $chk)
            Else
                FileWriteLine($TXT, "[Corrumpted] : [" & $op[$a] & "] : " & $serv[$b])
            EndIf
        Next
    Next
 
Merci à vous ;)
Modifié en dernier par Saachaa le dim. 02 sept. 2012 17:19, modifié 1 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] ContinueLoop et deux boucles array

#2

Message par mikell »

Heu pourquoi pas juste

Code : Tout sélectionner

For $a = 0 To UBound($op) -1
    $chk = RegRead($op[$a], "")
    If StringCompare($serv[$a], $chk, 2) = 0 Then
        FileWriteLine($TXT, "[OK] : [" & $op[$a] & "] : " & $chk)
    Else
        FileWriteLine($TXT, "[Corrumpted] : [" & $op[$a] & "] : " & $serv[$b])
    EndIf
Next
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Saachaa
Niveau 5
Niveau 5
Messages : 142
Enregistré le : dim. 11 mars 2012 23:29
Status : Hors ligne

Re: [..] ContinueLoop et deux boucles array

#3

Message par Saachaa »

Tu ne boucles pas dans $serv ici ?

Pourtant tu l'utilises dans ton code :oops: ?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] ContinueLoop et deux boucles array

#4

Message par mikell »

Bin si tu dois juste comparer entre elles les lignes 1, 2, 3 de chaque array, c'est le plus simple...
A chaque tour de boucle on compare $op[$a] et $serv[$a]
ça convient pas ?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Saachaa
Niveau 5
Niveau 5
Messages : 142
Enregistré le : dim. 11 mars 2012 23:29
Status : Hors ligne

Re: [..] ContinueLoop et deux boucles array

#5

Message par Saachaa »

En fait je ne comprends pas... étant donné que $serv[$b] ne seront pas déclarés :oops:

Je ne me suis pas pris plus la tête que ça :

Code : Tout sélectionner

#include <file.au3>

Dim $op[3][3] = _
    [["HKLM\SYSTEM\ControlSet001\Control\SafeBoot\Minimal\Boot file system", "Driver Group"], _
    ["HKLM\SYSTEM\ControlSet001\Control\SafeBoot\Minimal\CryptSvc", "Service"], _
    ["HKLM\SYSTEM\ControlSet001\Control\SafeBoot\Minimal\DcomLaunch", "Service"]]

    Local $txt = @DesktopDir & "\P_S.txt", $chk_safemode
    FileDelete($txt)
    _FileCreate($txt)

    For $a = 0 To UBound($op) -1
        $chk = RegRead($op[$a][0], "")
        If StringCompare($op[$a][1], $chk, 2) = 0 Then
            FileWriteLine($TXT, "[OK] : [" & $op[$a][0] & "] : " & $chk)
        Else
            FileWriteLine($TXT, "[Corrumpted] : [" & $op[$a][0] & "] : " & $op[$a][1])
        EndIf
    Next
 
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] ContinueLoop et deux boucles array

#6

Message par mikell »

Bon ton array devrait être $op[3][2] mais ça marche quand même
En fait ton option c'est exactement pareil que la mienne :mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Saachaa
Niveau 5
Niveau 5
Messages : 142
Enregistré le : dim. 11 mars 2012 23:29
Status : Hors ligne

Re: [..] ContinueLoop et deux boucles array

#7

Message par Saachaa »

Code : Tout sélectionner

For $a = 0 To UBound($op) -1
    $chk = RegRead($op[$a], "")
    If StringCompare($serv[$a], $chk, 2) = 0 Then
        FileWriteLine($TXT, "[OK] : [" & $op[$a] & "] : " & $chk)
    Else
        FileWriteLine($TXT, "[Corrumpted] : [" & $op[$a] & "] : " & $serv[$b])
    EndIf
Next
 
Mais là tu ne boucles pas dans le deuxième array ?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] ContinueLoop et deux boucles array

#8

Message par mikell »

Arrête avec ton $b :twisted: :mrgreen:
Quand on fait

Code : Tout sélectionner

For $a = 0 To UBound($op)-1
    If StringCompare($serv[$a], RegRead($op[$a], ""), 2) = 0 Then ...
on boucle dans les 2 arrays en même temps ^^
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Saachaa
Niveau 5
Niveau 5
Messages : 142
Enregistré le : dim. 11 mars 2012 23:29
Status : Hors ligne

Re: [R] ContinueLoop et deux boucles array

#9

Message par Saachaa »

Hey,

Pige pas comment c'est possible ça :mrgreen:
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] ContinueLoop et deux boucles array

#10

Message par mikell »

Code : Tout sélectionner

For [size=150][b]$a[/b][/size] = 0 To UBound($op)-1
    If StringCompare($serv[[size=150][b]$a[/b][/size]], RegRead($op[[size=150][b]$a[/b][/size]], ""), 2) = 0 Then ...
c'est mieux là ?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Saachaa
Niveau 5
Niveau 5
Messages : 142
Enregistré le : dim. 11 mars 2012 23:29
Status : Hors ligne

Re: [R] ContinueLoop et deux boucles array

#11

Message par Saachaa »

Ouais merci :)

Alors ça c'est fort je ne pensais pas que c'était possible !

Et en passant ;)
mikell a écrit :Heu pourquoi pas juste

Code : Tout sélectionner

For $a = 0 To UBound($op) -1
&nbsp; &nbsp; $chk = RegRead($op[$a], "")
&nbsp; &nbsp; If StringCompare($serv[$a], $chk, 2) = 0 Then
&nbsp; &nbsp; &nbsp; &nbsp; FileWriteLine($TXT, "[OK] : [" & $op[$a] & "] : " & $chk)
&nbsp; &nbsp; Else
&nbsp; &nbsp; &nbsp; &nbsp; FileWriteLine($TXT, "[Corrumpted] : [" & $op[$a] & "] : " & $serv[[b]$b[/b]])
&nbsp; &nbsp; EndIf
Next
Répondre