[R] Chercher une valeur dans une variable

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
corrs78
Niveau 5
Niveau 5
Messages : 160
Enregistré le : lun. 13 août 2007 17:38
Localisation : Yvelines
Status : Hors ligne

[R] Chercher une valeur dans une variable

#1

Message par corrs78 »

je récupère le nom réseau :

Code : Tout sélectionner

$NomReseau = @ComputerName

;Admettons qu'ont puisse avoir ces résultats:
;(valeur = PC_78_MAISON1)
;(valeur = ORDI_91_CHAMBRE)

;En fait je veux tester si, on trouve 78 ou 91 dans la variable.

Select
case $NomReseau = ( %FIXE%)Then
Msgbox(64,"","C'est un ordinateur des yvelines")

case $NomReseau = ( %FIXE%)Then
Msgbox(64,"","C'est un ordinateur de l'essonne")
Mon problème, je n'arrive pas à détecter si seulement une partie de ma variable est détecté dans la variable testée.
Merci
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1550
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

#2

Message par sylvanie »

et bien regexp toujours, avec tous les post dernièrement sur ce sujet, faut s'y mettre ;)

Code : Tout sélectionner

$reseau = 'F - PREF78 - 3100 P - SECRT91 - 3252 ' 
$departement = StringRegExp ( $reseau , ' - ( \w + ) - ' , 3 ) 
if IsArray ( $departement ) then 
for $ind = 0 to UBound ( $departement ) - 1 
ConsoleWrite ( $departement[$ind]&@CRLF ) 
Next 
EndIf  
si tu veux t'execer sur les regexp sans avoir à relancer des scripts à tout va, utilise StringRegExpGUI.au3 dispo dans le repertoire Helpfile, ou alors utilise le testeur de regexp inclu dans textcrawler, gratuit, super , efficace ... oui j'aime ce soft :p
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

#3

Message par Tlem »

Il est clair, que l'utilisation des expressions régulières, apporte pas mal de facilités sur certains points, mais tous le monde ne maitrise pas cela comme certains ...

En restant classique, et vu le format des noms réseau, j'aurais plutôt utilisé _StringBetween pour extraire la chaine entre les 2 tirets.

Code : Tout sélectionner

#include <String.au3> 
$reseau = 'F - PREF78 - 3100' 
$departement = _StringBetween ( $reseau , ' - ' , ' - ' ) 
ConsoleWrite ( $departement[0]&@CRLF )


J'avoue que le Regexp me rebute à l'apprentissage (C'est surement dut à l'age ;) )
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é".
Répondre