[R] Etablir valeure nulle

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
MrGuiGeeK
Niveau 1
Niveau 1
Messages : 4
Enregistré le : dim. 21 août 2011 19:15
Localisation : 42
Status : Hors ligne

[R] Etablir valeure nulle

#1

Message par MrGuiGeeK »

Bonjour à tous !

Voila je suis en train de rédiger un script permettant grâce a l'entrée de données à propos d'un graphe d'obtenir des informations sur celui-ci

Donc pour déclarer les sommets j'ai utilisé ceci:

Code : Tout sélectionner

;Déclartaion variable nombre de sommets
Dim $sommets

;Déclaration variable sommets et d'arretes
Dim $s1
Dim $s2
Dim $s3
Dim $s4
Dim $s5
Dim $s6
Dim $s7
Dim $s8
Dim $s9
Dim $s10
s1 etc... contiennent le nombre d' arrêtes de chaque sommets
A la fin je veux afficher une MsgBox contenant un récapitulatif des infos saisies. donc j'utilise ce code:

Code : Tout sélectionner

MsgBox(0, "InfoGraphe", "Récapitulatif des données enregistrées:" & @CRLF & "Nombre de sommets: " & $sommets & @CRLF & "Arrêtes du sommet 1: " & $s1 & @CRLF & "Arrêtes du sommet 2: " & $s2 & @CRLF & [...] "Arrêtes du sommet 10: " & $s10 & @CRLF & "Fin")
Je voulais savoir si il existait un moyen pour que toutes les variable Dim n'ayant pas étés définies soient toutes définies d'un coup. Je pense à un script dans ce genre:

Code : Tout sélectionner

If $s8 = NON DEFINIE Then
$s8 = "Valeur non définie"
EndIf
Merci d'avance pour votre aide !
Modifié en dernier par MrGuiGeeK le lun. 22 août 2011 22:11, modifié 1 fois.
Avatar du membre
moi
Niveau 7
Niveau 7
Messages : 370
Enregistré le : sam. 09 juil. 2011 22:14
Localisation : devant sont ordinateur
Status : Hors ligne

Re: [..] Etablir valeure nulle

#2

Message par moi »

quand tu dıs non défınıes tu veut dıre sans valeur? non?

sı c'est ça ... la var = ""

donc
MrGuiGeeK a écrit :

Code : Tout sélectionner

If $s8 = NON DEFINIE Then
$s8 = "Valeur non définie"
EndIf
tu faıs

Code : Tout sélectionner

If $s8 = "" Then
$s8 = "Valeur non définie"
EndIf
la tu faıs ça avec toute les varıables puıs t utılıse ton msgbox
le problème ce n'est pas un problème, le seul problème ici c'est nous.

j'aime NYAN CAT Image
Avatar du membre
MrGuiGeeK
Niveau 1
Niveau 1
Messages : 4
Enregistré le : dim. 21 août 2011 19:15
Localisation : 42
Status : Hors ligne

Re: [R] Etablir valeure nulle

#3

Message par MrGuiGeeK »

Oui sans valeur

Merci bien c'est exactement ce que je recherchait ;)
Je vous fait partager le script dès qu'il est finit
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Etablir valeure nulle

#4

Message par Tlem »

Hummm, à partir du moment ou vous rajouter la déclaration Dim en début de code, votre variable est automatiquement initialisée (à une valeur nulle).
Voir pouvez simplifier votre déclaration comme ceci :

Code : Tout sélectionner

Dim $s1, $s2, $s3, $s4, $s5, $s6, $s7, $s8, $s9, $s10
Sinon, pour tester si une variable est déclarée ou pas, c'est IsDeclared que l'on utilise :

Code : Tout sélectionner

If Not IsDeclared("s8") Then
    MsgBox(0, "", "La variable $s8 n'est pas déclarée")
EndIf
Mais bon, je ne sais pas si ce que vous cherchez est la déclaration ou l'initialisation. Mais les réponses que je viens de vous donner devraient suffire à faire la différence. ^^
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Etablir valeure nulle

#5

Message par mikell »

ça c'est pour tester l'initialisation :mrgreen:

Code : Tout sélectionner

$text = ""
Dim $s1, $s2="2", $s3, $s4="4", $s5, $s6="6", $s7, $s8="8", $s9, $s10="10"

For $i = 1 to 10
If Eval("s" & $i) = "" Then $text &= "variable " & $i & "= non définie" & @CRLF
Next

MsgBox(0,"", $text)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Etablir valeure nulle

#6

Message par TommyDDR »

Et dieu inventa les tableau.

Rappel : Dans 99.99999% des cas, si vous avez des noms de variables contenant un nombre qui s'incrémente, c'est que vous devez utiliser un tableau.

Code : Tout sélectionner

Global $s[10] (10 sommets allant de $s[0] à $s[9])
Comme ça, avec un tableau, vous pouvez facilement mettre VOTRE valeur par défaut :

Code : Tout sélectionner

For $i = 0 To 9
    $s[$i] = "NULL"
Next
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
MrGuiGeeK
Niveau 1
Niveau 1
Messages : 4
Enregistré le : dim. 21 août 2011 19:15
Localisation : 42
Status : Hors ligne

Re: [..] Etablir valeure nulle

#7

Message par MrGuiGeeK »

Donc en clair ce serait plus facile de déclarer un tableau (ayant un nombre $nbsommets pour dimension) ce qui permettrai déja de supprimer la limitation du nombre de sommet précédemment établie à 10.
Et en fait je pense que je vais trouver un moyen pour que dans la MsgBox seul les variables qui ont été initialisées (donc qui on pris une valeur si je ne me trompe pas), mais si j'utilise un tableau il me suffira de demander d'afficher les valeurs du tableau.
Répondre