Page 1 sur 1

Probleme avec un switch

Posté : lun. 28 mars 2022 13:54
par YuChan
Bonjour,

Je rencontre un soucis avec la fonction switch

Code : Tout sélectionner

Global $val = 'test1'

	Switch $val
		
		Case "test1"
			MsgBox(0, "", "trest1")
	
		Case Else
			MsgBox(0, "", "valeur de $val ne correspond pas")

	EndSwitch

Code : Tout sélectionner

Global $val = 'test10'

	Switch $val
		
		Case "test1"
			MsgBox(0, "", "test1")
	
		Case Else
			MsgBox(0, "", "valeur de $val ne correspond pas")

	EndSwitch
Pour le switch avec $val = "test10" la popup ne s'affiche pas disant que la valeur est non correspondante.

Du coup ma question est comment mettre une valeur par défaut si aucun Case ne correspond ?

CDT

Re: Probleme avec un switch

Posté : lun. 28 mars 2022 14:03
par jchd
Dans le Case Else

Re: Probleme avec un switch

Posté : lun. 28 mars 2022 17:43
par YuChan
merci mais sa coince.

Comment transformé ceci en switch svp

Code : Tout sélectionner

	$r1 = _ImageSearch($pic1, 1, 100)
	If IsArray($r1) Then
		$pic = "picture 1"
		Return $pic
	EndIf


	$r20 = _ImageSearch($pic2, 1, 100)
	If IsArray($r20) Then
		$pic = "picture 2"
		Return $pic
	EndIf

Re: Probleme avec un switch

Posté : lun. 28 mars 2022 19:22
par jchd
Ni avec un Switch, ni avec un Select.

Comme ça peut-être :

Code : Tout sélectionner

	$pic = "no picture found"
	$r1 = _ImageSearch($pic1, 1, 100)
	If IsArray($r1) Then
		$pic = "picture 1"
	Else
		$r1 = _ImageSearch($pic2, 1, 100)
		If IsArray($r1) Then
			$pic = "picture 2"
		EndIf
	EndIf
	Return $pic

Re: Probleme avec un switch

Posté : lun. 28 mars 2022 21:35
par mikell
Ou alors peut-être avec une combi array - boucle For

$pic = "no picture found"

Local $pics = [$pic1, $pic2]
For $i = 0 to UBound($pics) - 1
   $tmp = _ImageSearch($pics[$i], 1, 100)
   If IsArray($tmp) Then
      $pic = "picture " & $i
      Exitloop
   EndIf
Next

Re: Probleme avec un switch

Posté : mar. 29 mars 2022 04:59
par YuChan
Merci.

Donc pour que je comprenne bien comment faire avec 3 image différentes maintenant ?
Ausssi j'ai un soucis, comment tezter si la valeur et null et affecter une valeur a $pic

Code : Tout sélectionner

	$r1 = _ImageSearch($pic1, 1, 100)
	If IsArray($r1) Then
		$pic = "picture 1"
		Return $pic
	EndIf


	$r20 = _ImageSearch($pic2, 1, 100)
	If IsArray($r20) Then
		$pic = "picture 2"
		Return $pic
	EndIf
	
	$r40 = _ImageSearch($pic3, 1, 100)
	If IsArray($40) Then
		$pic = "picture 3"
		Return $pic
	EndIf

Re: Probleme avec un switch

Posté : mar. 29 mars 2022 22:24
par Tlem
Bonsoir.
Puisque vous utilisez la fonction Return, c'est que vous regroupez cette liste de tests dans une fonction ...
Il vous suffit donc de rajouter une ligne à la suite de vos tests. Puisque aucun test aura été positif c'est que votre valeur est nulle. ;)

Re: Probleme avec un switch

Posté : jeu. 31 mars 2022 06:33
par YuChan
Je suis desolé, merci pour la reponse mais quelle ligne je dois ajouter ?
Je comprends pas bien

Et aussi, sa prends genre 5 a 7 secondes pour trouver une image.
Est ce normal ?

Re: Probleme avec un switch

Posté : jeu. 31 mars 2022 09:23
par Tlem
Bonjour.

Code : Tout sélectionner

$pic = "ma valeur"
Et concernant le temps de recherche, celui-ci est lié à la taille de l'espace de recherche. Plus elle est grande, plus il lui faut du temps. ^^

Si vous avez une résolution de 4K il mettra plus de temps à rechercher que sur du Full HD ou HD. 😉

Re: Probleme avec un switch

Posté : dim. 03 avr. 2022 11:50
par YuChan
Merci.

Je comprends pas j'ai fait Else If et sa prends 7sec voir plus.

Mes images font 2 ou 3 octets.

Ce qui est encore plus etrange c'est que les autre marchent a la perfection alors que ya plus de code.