[R] Comparer 3 Variables

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
jerem448
Niveau 1
Niveau 1
Messages : 9
Enregistré le : ven. 01 déc. 2017 15:53
Status : Hors ligne

[R] Comparer 3 Variables

#1

Message par jerem448 » mer. 17 oct. 2018 18:15

Bonjour à tous,

J'ai besoin de votre aide pour faire évoluer mon petit programme, et pour cela je dois vérifier la valeur de "BIOS" dans le registre :
Chemin complet :RegRead("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS", "BIOSVersion")

Le soucis est que sur certains modèles cette valeur est juste la version du BIOS ex: 320
et sur d'autres la valeur comprend le modèle ex: x540ya.320

Actuellement mon programme propose un mode "DT & AIO" qui résout le problème, mais j'aimerais le simplifier et tout afficher directement sur une seule GUI.
La Question est donc es t'il possible de comparer 3 variables ex :"if $versionB >= $versionD and $versionE"
A chaque tentative une seule des 2 variables est prise en compte.
J'ai aussi tenté de récupérer la valeur du BIOS après le "." avec un stringsplit sans succès.
J'ai éssayer pas mal de chose trouver sur des forums mais rien n'a fonctionné, ou je n'ai pas su adapter les solutions proposer.

Code : Tout sélectionner

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=solvarea.ico
#AutoIt3Wrapper_Compile_Both=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include "GUIConstantsEx.au3"
#include "StaticConstants.au3"
#include "WindowsConstants.au3"
#include "ColorConstants.au3"

; ########## Début de la création de la GUI 1 ##########
Local $Model = RegRead("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS", "BaseBoardProduct") ;Récupération du modèle
Local $VersionB = RegRead("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS", "Biosversion") ;Récupération de la version du BIOS
Local $NB_BIOS = "" ; Récupération de la valeur dans le fichier NB_BIOS
$SPN = RegRead("HKLM\HARDWARE\DESCRIPTION\System\BIOS", "BaseBoardProduct")
$NB_BIOS = IniRead("NB_BIOS.ini", "BIOS", $SPN, "")
Local $VersionD = ($Model & '.' & $NB_BIOS)
$GUI1 = GUICreate("Verbios 7.0", 400, 400, -1, -1) ; Création de la GUI1
$fond = GUICtrlCreatePic("LOGO.jpg", 0, 10, 400, 90)
GUICtrlSetState($Fond, $GUI_DISABLE)
Opt("GUICoordMode", 5)
$Lb1 = GUICtrlCreateLabel("Modele", 70, 110, 320, 24) ; Création du label1
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label1)
GUICtrlSetState(-1, $GUI_ONTOP)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent
$Lb11 = GUICtrlCreateLabel(" = " & $Model, 250, 110, 320, 24) ; Création du label1
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label1)
GUICtrlSetState(-1, $GUI_ONTOP)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent
$Lb2 = GUICtrlCreateLabel("Version Installee", 70, 140, 320, 24) ; Création du label2
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label2)
GUICtrlSetState(-1, $GUI_ONTOP)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent
$lb21 = GUICtrlCreateLabel(" = " & $VersionB, 250, 140, 320, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label1)
GUICtrlSetState(-1, $GUI_ONTOP)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent
$Lb3 = GUICtrlCreateLabel("Version à Jour", 70, 170, 320, 24) ; Création du label3
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label3)
GUICtrlSetState(-1, $GUI_ONTOP)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent
$Lb31 = GUICtrlCreateLabel(" = " & $NB_BIOS, 250, 170, 320, 24) ; Création du label1
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label1)
GUICtrlSetState(-1, $GUI_ONTOP)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transpare
If ($VersionB >= $VersionD) Then
	$Lb4 = GUICtrlCreateLabel("BIOS A JOUR", 110, 200, 320, 24) ; Création du label4
	GUICtrlSetFont(-1, 20, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label4)
	GUICtrlSetState(-1, $GUI_ONTOP)
	GUICtrlSetColor(-1, $color_green)
Else
	$Lb4 = GUICtrlCreateLabel("BIOS PAS A JOUR", 75, 200, 320, 24) ; Création du label4
	GUICtrlSetFont(-1, 20, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label4)
	GUICtrlSetState(-1, $GUI_ONTOP)
	GUICtrlSetColor(-1, $color_red)
EndIf
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent
$Btn1 = GUICtrlCreateButton("Quitter", 216, 240, 150, 25) ; Création d'un bouton simple
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent
$Btn2 = GUICtrlCreateButton("MODE DT & AIO", 33, 240, 150, 25) ; Création d'un bouton simple
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent


; ########## Fin de la création de la GUI 1 ##########*


; ########## Début de la création de la GUI 2 ##########
Local $Model = RegRead("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS", "BaseBoardProduct") ;Récupération du modèle
Local $VersionB = RegRead("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS", "Biosversion") ;Récupération de la version du BIOS
Local $NB_BIOS = "" ; Récupération de la valeur dans le fichier NB_BIOS
$SPN = RegRead("HKLM\HARDWARE\DESCRIPTION\System\BIOS", "BaseBoardProduct")
$NB_BIOS = IniRead("NB_BIOS.ini", "BIOS", $SPN, "")
Local $VersionD = ($NB_BIOS)
$GUI2 = GUICreate("Verbios 7.0", 400, 400, -1, -1) ; Création de la GUI1
$fond = GUICtrlCreatePic("LOGO.jpg", 0, 10, 400, 90)
GUICtrlSetState($Fond, $GUI_DISABLE)
Opt("GUICoordMode", 5)
$Lb1 = GUICtrlCreateLabel("Modele", 70, 110, 320, 24) ; Création du label1
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label1)
GUICtrlSetState(-1, $GUI_ONTOP)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent
$Lb11 = GUICtrlCreateLabel(" = " & $Model, 250, 110, 320, 24) ; Création du label1
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label1)
GUICtrlSetState(-1, $GUI_ONTOP)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent
$Lb2 = GUICtrlCreateLabel("Version Installee", 70, 140, 320, 24) ; Création du label2
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label2)
GUICtrlSetState(-1, $GUI_ONTOP)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent
$lb21 = GUICtrlCreateLabel(" = " & $VersionB, 250, 140, 320, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label1)
GUICtrlSetState(-1, $GUI_ONTOP)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent
$Lb3 = GUICtrlCreateLabel("Version à Jour", 70, 170, 320, 24) ; Création du label3
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label3)
GUICtrlSetState(-1, $GUI_ONTOP)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent
$Lb31 = GUICtrlCreateLabel(" = " & $NB_BIOS, 250, 170, 320, 24) ; Création du label1
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label1)
GUICtrlSetState(-1, $GUI_ONTOP)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transpare
If ($VersionB >= $VersionD) Then
	$Lb4 = GUICtrlCreateLabel("BIOS A JOUR", 110, 200, 320, 24) ; Création du label4
	GUICtrlSetFont(-1, 20, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label4)
	GUICtrlSetState(-1, $GUI_ONTOP)
	GUICtrlSetColor(-1, $color_green)
Else
	$Lb4 = GUICtrlCreateLabel("BIOS PAS A JOUR", 75, 200, 320, 24) ; Création du label4
	GUICtrlSetFont(-1, 20, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label4)
	GUICtrlSetState(-1, $GUI_ONTOP)
	GUICtrlSetColor(-1, $color_red)
EndIf
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent
$Btn3 = GUICtrlCreateButton("Quitter", 216, 240, 150, 25) ; Création d'un bouton simple
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent
$Btn4 = GUICtrlCreateButton("MODE NB", 33, 240, 150, 25) ; Création d'un bouton simple
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent
; ########## Fin de la création de la GUI 2 ##########


GUISetState(@SW_SHOW, $GUI1) ; On affiche la GUI1 




While 1 ; Début de la boucle infinie

	$nMsg = GUIGetMsg() ; Récupération des messages GUI
	Switch $nMsg ; Début du sélecteur de cas
		Case $GUI_EVENT_CLOSE ; Si clic fermeture fenêtre GUI1 
			MsgBox(64, "", _
					@CRLF & "Merci d'avoir utiliser VERBIOS!!") ; Message
			Exit ; Fin du script

		Case $Btn1
			MsgBox(64, "", _
					@CRLF & "Merci d'avoir utiliser VERBIOS!!") ; Message
			Exit ; Fin du script
			GUISetState($GUI_EVENT_CLOSE) ; On ferme la fenetre

		Case $Btn2

			GUISetState(@SW_HIDE, $GUI1) ; On masque la GUI 1
			GUISetState(@SW_SHOW, $GUI2) ; On affiche la GUI 2

		Case $Btn4

			GUISetState(@SW_HIDE, $GUI2) ; On masque la GUI 2
			GUISetState(@SW_SHOW, $GUI1) ; On affiche la GUI 1

		Case $Btn3
			MsgBox(64, "", _
					@CRLF & "Merci d'avoir utiliser VERBIOS!!") ; Message
			Exit ; Fin du script
			GUISetState($GUI_EVENT_CLOSE) ; On ferme la fenetre



	EndSwitch ; Fin du sélecteur de cas
WEnd ; Fin de la boucle infinie

Désolé pour le roman, je précise que je débute avant de me faire insulter. :lol:
Merci
Modifié en dernier par jerem448 le mar. 23 oct. 2018 18:55, modifié 1 fois.

Avatar du membre
orax
Modérateur
Modérateur
Messages : 1454
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Contact :
Status : Hors ligne

Re: Comparer 3 Variables

#2

Message par orax » mer. 17 oct. 2018 21:13

Je ne sais pas exactement quelle comparaison tu souhaites faire.
Le code suivant vérifie que $versionB est supérieur ou égal à $versionD et que $versionB est supérieur ou égal à $versionE. Les deux conditions doivent être vraies.

Code : Tout sélectionner

$versionB="x540ya.320"
$versionD="x540ya.100"
$versionE="x540ya.200"
If $versionB >= $versionD And $versionB >= $versionE Then
	ConsoleWrite($versionB & @CRLF)
EndIf
Alors que si je remplace And par Or, il y a juste besoin qu'une des deux conditions soit vraie.

Code : Tout sélectionner

If $versionB >= $versionD Or $versionB >= $versionE Then
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5748
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Comparer 3 Variables

#3

Message par mikell » mer. 17 oct. 2018 21:17

ça poserait un problème de le faire comme ça ?
if ($versionB >= $versionD) and ($versionB >= $versionE)
:?:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

jerem448
Niveau 1
Niveau 1
Messages : 9
Enregistré le : ven. 01 déc. 2017 15:53
Status : Hors ligne

Re: Comparer 3 Variables

#4

Message par jerem448 » jeu. 18 oct. 2018 18:23

Ca ne fonctionne pas.. Le programme me retourne un "BIOS PAS A JOUR" même si la version correspond.
Je pense que le problème vient surtout du fait qu'une des 2 variables contient le texte du modèle car sur un Notebook la version du BIOS se présente sous la forme "X540YA.320" alors que sur un Desktop ou un All In One elle ne contient que la version donc "320".
Du coup la versionB est la version installée, et je dois la comparer à la valeur récupérer dans un fichier texte (NB_BIOS), j'ai donc créé la versionD sous la forme

Code : Tout sélectionner

($Model & '.' & $NB_BIOS)
alors que la versionE elle ne contient que la valeur donc $versionE = $NB_BIOS.
Je ne sais pas si je suis très clair désolé.
Merci

Le nouveau code avec une seule GUI

Code : Tout sélectionner

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=solvarea.ico
#AutoIt3Wrapper_Compile_Both=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include "GUIConstantsEx.au3"
#include "StaticConstants.au3"
#include "WindowsConstants.au3"
#include "ColorConstants.au3"
#include <StringConstants.au3>

Local $Model = RegRead("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS", "BaseBoardProduct") ;Récupération du modèle
Local $VersionB = RegRead("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS", "Biosversion") ;Récupération de la version du BIOS
Local $NB_BIOS = "" ; Récupération de la valeur dans le fichier NB_BIOS
$SPN = RegRead("HKLM\HARDWARE\DESCRIPTION\System\BIOS", "BaseBoardProduct")
$NB_BIOS = IniRead("NB_BIOS.ini", "BIOS", $SPN, "")
Local $VersionD = ($Model & '.' & $NB_BIOS)
Local $VersionE = ($NB_BIOS)

;~ GUI1

$GUI1 = GUICreate("Verbios 7.0", 800, 400, -1, -1) ; Création de la GUI1
$fond = GUICtrlCreatePic("LOGO.jpg", 0, 10, 400, 90)
GUICtrlSetState($Fond, $GUI_DISABLE)
Opt("GUICoordMode", 5)
$Lb1 = GUICtrlCreateLabel("Modele", 70, 110, 320, 24) ; Création du label1
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label1)
GUICtrlSetState(-1, $GUI_ONTOP)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent
$Lb11 = GUICtrlCreateLabel(" = " & $Model, 250, 110, 320, 24) ; Création du label1
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label1)
GUICtrlSetState(-1, $GUI_ONTOP)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent
$Lb2 = GUICtrlCreateLabel("Version Installee", 70, 140, 320, 24) ; Création du label2
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label2)
GUICtrlSetState(-1, $GUI_ONTOP)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent
$lb21 = GUICtrlCreateLabel(" = " & $VersionB, 250, 140, 320, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label1)
GUICtrlSetState(-1, $GUI_ONTOP)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent
$Lb3 = GUICtrlCreateLabel("Version à Jour", 70, 170, 320, 24) ; Création du label3
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label3)
GUICtrlSetState(-1, $GUI_ONTOP)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent
$Lb31 = GUICtrlCreateLabel(" = " & $NB_BIOS, 250, 170, 320, 24) ; Création du label1
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label1)
GUICtrlSetState(-1, $GUI_ONTOP)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transpare

GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent
$Btn1 = GUICtrlCreateButton("Quitter", 216, 240, 150, 25) ; Création d'un bouton simple
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Arrière plan du label transparent
$Btn8 = GUICtrlCreateButton("Mise à Jour NB_BIOS", 33, 290, 334, 50) ; Création d'un bouton simple


GUISetState(@SW_SHOW, $GUI1) ; On affiche la GUI1 



;~ 			If $versionB >= $versionD And $versionB >= $versionE Then
;~ 			If $versionB >= $versionD Or $versionB >= $versionE Then
			if ($versionB >= $versionD) and ($versionB >= $versionE) Then
			$Lb4 = GUICtrlCreateLabel("BIOS A JOUR", 110, 200, 320, 24) ; Création du label4
			GUICtrlSetFont(-1, 20, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label4)
			GUICtrlSetState(-1, $GUI_ONTOP)
			GUICtrlSetColor(-1, $color_green))
		Else
			$Lb4 = GUICtrlCreateLabel("BIOS PAS A JOUR", 75, 200, 320, 24) ; Création du label4
			GUICtrlSetFont(-1, 20, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label4)
			GUICtrlSetState(-1, $GUI_ONTOP)
			GUICtrlSetColor(-1, $color_red)

		EndIf



While 1 ; Début de la boucle infinie

	$nMsg = GUIGetMsg() ; Récupération des messages GUI
	Switch $nMsg ; Début du sélecteur de cas
		Case $GUI_EVENT_CLOSE ; Si clic fermeture fenêtre GUI1 
			MsgBox(64, "", _
					@CRLF & "Merci d'avoir utilisé VERBIOS!!") ; Message
			Exit ; Fin du script

		Case $Btn1
			MsgBox(64, "", _
					@CRLF & "Merci d'avoir utilisé VERBIOS!!") ; Message
			Exit ; Fin du script
			GUISetState($GUI_EVENT_CLOSE) ; On ferme la fenetre



	EndSwitch ; Fin du sélecteur de cas
WEnd ; Fin de la boucle infinie


caramen
Niveau 2
Niveau 2
Messages : 20
Enregistré le : mer. 03 juil. 2013 06:22
Status : Hors ligne

Re: Comparer 3 Variables

#5

Message par caramen » ven. 19 oct. 2018 04:52

Si tu es sur que ton bios qui renvoi la valeur 320 est un bios X540YA.320

Ce que tu peux faire c'est importer la value. Puis dire a ton script que si il lit une value egale a 320 alor il l'a change en X540YA.320

Exemple :
If $Myvalue = "320" Then
         $Myvalue = "X540YA.320"
EndIF
Bien sur cela est faisable que si la valeur 320 correspond uniquement a X540YA.320.
Sinon il faudra que tu trouve une autre valeur que seul les 320 ont.

Dans ce cas tu ajoute une condition....
If $Myvalue = "320" And $2mValeurUnique320 = "WhatEverIWant" Then
         $Myvalue = "X540YA.320"
EndIF
Avec ca, si ton script fonctionne avec la valeur "X540YA.320" il fonctionnera aussi avec 320.
Modifié en dernier par caramen le ven. 19 oct. 2018 14:37, modifié 1 fois.

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5748
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Comparer 3 Variables

#6

Message par mikell » ven. 19 oct. 2018 13:08

Tu peux aussi formater ta valeur en extrayant les chiffres voulus avec une expression régulière, par exemple :

$Myvalue = "320"
$v1 = StringRegExpReplace($Myvalue, '.*?(\d+)$', "$1")

$Myvalue = "X540YA.320"
$v2 = StringRegExpReplace($Myvalue, '.*?(\d+)$', "$1")

$Myvalue = "WhatEverIDontWantx320"
$v3 = StringRegExpReplace($Myvalue, '.*?(\d+)$', "$1")

Msgbox(0,"", $v1 & @crlf & $v2 & @crlf & $v3)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

caramen
Niveau 2
Niveau 2
Messages : 20
Enregistré le : mer. 03 juil. 2013 06:22
Status : Hors ligne

Re: Comparer 3 Variables

#7

Message par caramen » ven. 19 oct. 2018 14:19

Ou Ceci :p . ^^ :

$sString = StringRight("X540YA.320", 3)
$sString2 = StringRight("320", 3)
$sString3 = StringRight("WhatEverIDontWant.320", 3)



MsgBox(0, "$sString", "Les 3 chiffres de droite : " & $sString)
MsgBox(0, "$sString2", "Les 3 chiffres de droite : " & $sString2)
MsgBox(0, "$sString3", "Les 3 chiffres de droite : " & $sString3)

jerem448
Niveau 1
Niveau 1
Messages : 9
Enregistré le : ven. 01 déc. 2017 15:53
Status : Hors ligne

Re: Comparer 3 Variables

#8

Message par jerem448 » lun. 22 oct. 2018 17:25

Désolé pour le suspense :lol:
J'ai utilisé la solution de mikell le stringregexpreplace et ça a l'air de fonctionner chez moi, je test demain au taff sur plusieurs machines et je vous confirme.
Merci

jerem448
Niveau 1
Niveau 1
Messages : 9
Enregistré le : ven. 01 déc. 2017 15:53
Status : Hors ligne

Re: Comparer 3 Variables

#9

Message par jerem448 » mar. 23 oct. 2018 18:55

Je reviens pour vous confirmer que tout fonctionne très bien.
Merci à tous.

Répondre