Page 1 sur 1
[R] Mystère du Switch
Posté : dim. 12 janv. 2014 14:20
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
Re: [..] Mystère du Switch
Posté : dim. 12 janv. 2014 15:07
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 ...

Re: [R] Mystère du Switch
Posté : lun. 13 janv. 2014 15:27
par perfaram
LAUGH OUT LOUD ! Je suis vraiment distrait des fois...
Merci beaucoup !
(Je passe en résolu)