Aide et conseils concernant AutoIt et ses outils.
-
perfaram
- Niveau 4

- Messages : 68
- Enregistré le : jeu. 28 avr. 2011 11:40
-
Status :
Hors ligne
#1
Message
par perfaram »
Bonjour à tous
Je rencontre un petit problème avec l'utilisation d'un Switch :
J'ai 2x la même structure, avec simplement une variable différente :
► Afficher le texte
Code : Tout sélectionner
Display("0644975226", "45", "Orange", "80", "48°52*22.41", "2°20*58.86", "400", 11, "49", "Paris")
Func Display($tracker, $batt, $oper, $level, $lat, $lon, $hei, $speed, $north, $city)
Local $corlat = StringReplace($lat, "*", "'")
Local $corlon = StringReplace($lon, "*", "'")
Global $ourlat
Global $ourlon
Switch $corlat
Case StringLen($corlat) < 10
$ourlat = $corlat & " "
Case StringLen($corlat) > 10 AND $corlat < 100
$ourlat = $corlat & " "
Case StringLen($corlat) > 100
$ourlat = $corlat
EndSwitch
Switch $corlon
Case StringLen($corlon) < 10
$ourlon = $corlon & " "
Case StringLen($corlon) > 10 AND $corlon < 100
$ourlon = $corlon & " "
Case StringLen($corlon) > 100
$ourlon = $corlon
EndSwitch
GUICtrlSetData($List, $ourlat & $ourlon & $city)
EndFunc
GUICtrlSetData écrit dans une ListBox, mais seul $ourlat et $city ne retournent une valeur. $ourlon revient vide après le Switch
Quelqu'un aurait-il une p'tite idée ??
Merci d'avance
EDIT : Le bout de code suivant illustre parfaitement le problème :
► Afficher le texte
Code : Tout sélectionner
Display("0644975226", "45", "Orange", "80", "48°52*22.41", "2°20*58.86", "400", 11, "49", "Paris")
Func Display($tracker, $batt, $oper, $level, $lat, $lon, $hei, $speed, $north, $city)
Local $corlat = StringReplace($lat, "*", "'")
Local $corlon = StringReplace($lon, "*", "'")
Global $ourlat
Global $ourlon
MsgBox(64, "Help", $corlon)
MsgBox(64, "Help", $corlat)
Switch $corlat
Case StringLen($corlat) < 10
$ourlat = $corlat & " "
Case StringLen($corlat) > 10 AND $corlat < 100
$ourlat = $corlat & " "
Case StringLen($corlat) > 100
$ourlat = $corlat
EndSwitch
Switch $corlon
Case StringLen($corlon) < 10
$ourlon = $corlon & " "
Case StringLen($corlon) > 10 AND $corlon < 100
$ourlon = $corlon & " "
Case StringLen($corlon) > 100
$ourlon = $corlon
EndSwitch
MsgBox(64, "A L'AIDE", $ourlon)
MsgBox(64, "A L'AIDE", $corlat)
EndFunc
Modifié en dernier par
perfaram le lun. 13 janv. 2014 15:27, modifié 2 fois.
-
mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
-
Status :
Hors ligne
#2
Message
par mikell »
Le choix de la condition n'est pas top, tu utilises des expressions, or
donc tu devrais utiliser Select
De plus, ce code ne retourne rien :
Code : Tout sélectionner
$lon = "2°20*58.86"
$corlon = StringReplace($lon, "*", "'")
MsgBox(64, "$corlon", $corlon)
Select
Case StringLen($corlon) < 10
$ourlon = $corlon & " "
Case StringLen($corlon) > 10 AND $corlon < 100
$ourlon = $corlon & " "
Case StringLen($corlon) > 100
$ourlon = $corlon
EndSelect
MsgBox(64, "$ourlon", $ourlon)
ake dans ton exemple $corlon fait exactement 10 caractères : StringLen($corlon) = 10
Cherche l'erreur ...

" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
-
perfaram
- Niveau 4

- Messages : 68
- Enregistré le : jeu. 28 avr. 2011 11:40
-
Status :
Hors ligne
#3
Message
par perfaram »
LAUGH OUT LOUD ! Je suis vraiment distrait des fois...
Merci beaucoup !
(Je passe en résolu)