Page 1 sur 1

[R] Afficher toutes les valeurs non vides d'un Array 1D ?

Posté : jeu. 15 sept. 2011 14:43
par SnowedEarth
Bonjour,
Depuis hier soir, je travaille sur un bout de code permettant de trouver tous les diviseurs d'un nombre préalablement renseigné par l'utilisateur. Cette partie fonctionne très bien. Malheureusement, je ne sais pas comment faire afficher toutes ces valeurs à la fin de la boucle dans une seule boite de dialogue qui serait pratique (Et qui ne rame pas quand l'array est trop large), contrairement à _ArrayDisplay qui est vraiment... Moche.

Code :

Code : Tout sélectionner

[...]
#include <Array.au3>
Dim $a, $a2, $a3, $a4, $i, $i2, $a6
Local $a5[20000]
[...]
        Case $Button1   
            $a = GUICtrlRead($Input1) ; C'est dans cet input que le chiffre est renseigné
            $a2 = Number($a) 
            $a3 = $a2-Round($a)
            $a4 = Floor($a2/2)
            $i  = 1
            $i2 = 0
            $a6 = Mod($a2,$i)           ; a divisible par i ssi a6=0.
            If $a3 = 0 Then 
                Do
                    $a6 = Mod($a2,$i)
                    $i2 = $i2+1
                    If $i <= $a4 And $a6=0 Then
                        $a5[$i]=$i2
                        $i = $i + 1
                        MsgBox(1,"",$i2)
                    Else
                        $i = $i+1
                    EndIf
                Until $i > $a4 ; Jusqu'à que le nombre de répétitions de la boucle soit supérieur à E(a/2) : En gros, tant que  i€[1;E(a/2)]
                MsgBox(1,"",$a2)
                ;Fin de la boucle. C'est là qu'il faudrait afficher tous les multiples trouvés.
            Else
                MsgBox(4096,"Erreur !","La variable entrée n'est pas valide.")
            EndIf
    EndSwitch
WEnd
Si quelqu'un a un indice ou une idée, qu'il se prononce. Merci d'avance :)

Re: [..]Afficher toutes les valeurs d'un Array 1D ?

Posté : jeu. 15 sept. 2011 15:20
par mikell
SnowedEarth a écrit : comment faire afficher toutes ces valeurs à la fin de la boucle dans une seule boite de dialogue qui serait pratique (Et qui ne rame pas quand l'array est trop large), contrairement à _ArrayDisplay qui est vraiment... Moche.
Pas de souci mais alors il faudrait préciser le look désiré, qu'on aille pas malencontreusement proposer une solution esthétiquement traumatisante :mrgreen:

Re: [..]Afficher toutes les valeurs d'un Array 1D ?

Posté : jeu. 15 sept. 2011 15:22
par SnowedEarth
mikell a écrit :
SnowedEarth a écrit : comment faire afficher toutes ces valeurs à la fin de la boucle dans une seule boite de dialogue qui serait pratique (Et qui ne rame pas quand l'array est trop large), contrairement à _ArrayDisplay qui est vraiment... Moche.
Pas de souci mais alors il faudrait préciser le look désiré, qu'on aille pas malencontreusement proposer une solution esthétiquement traumatisante :mrgreen:
Erf, comment ais-je pu oublier de préciser cela... ? Merci de l'avoir signalé. :D
L'idéal serait de faire afficher ces valeurs dans une MsgBox.

Re: [..]Afficher toutes les valeurs non vides d'un Array 1D

Posté : jeu. 15 sept. 2011 15:36
par mikell
Je suis un peu perdu dans votre script, mais pour une MsgBox le mieux c'est de faire comme ça :

au début :
$texte = "Tableau de valeurs " & @CRLF
$texte &= "----------------------" & @CRLF ; <= concaténation

ensuite la boucle, avec à chaque tour :
$texte &= "la valeur à noter" & @CRLF

et en sortie de boucle :
MsgBox(0, "", $texte)

Re: [..] Afficher toutes les valeurs non vides d'un Array 1D

Posté : ven. 16 sept. 2011 08:44
par Tlem
Sinon, comme ceci, ca fonctionne aussi bien :

Code : Tout sélectionner

;Local $a = GUICtrlRead($Input1) ; C'est dans cet input que le chiffre est renseigné
Local $a = 100000

If Not IsInt(Number($a)) Then
    MsgBox(4096, "Erreur !", "La variable entrée n'est pas valide.")
    Exit
EndIf

Local $i, $Res

For $i = 1 to Floor(Number($a) / 2)
    If $i <= Floor(Number($a) / 2) And Mod(Number($a), $i) = 0 Then
        $Res &= $i & ", "
    EndIf
Next

MsgBox(32, "Résultat", StringTrimRight($Res, 2) & @TAB)

Re: [..] Afficher toutes les valeurs non vides d'un Array 1D

Posté : ven. 16 sept. 2011 22:50
par SnowedEarth
Merci à vous deux !
Je savais pas que c'était aussi simple. Si j'avais su... :mrgreen:
Titre édité au passage.