Page 1 sur 1

[R] Conditions dans un inputbox

Posté : jeu. 26 mars 2015 19:31
par Utilisateur 4174 supprimé
Bonjour,

Je souhaiterais ajouter la condition suivante dans une inputbox :
Ma donnée entrée devra commencer par un "S" ou un "P" suivie de 3 numéros sinon je refuse de continuer mon script.

Merci !

Re: [..] Conditions dans un inputbox

Posté : jeu. 26 mars 2015 21:23
par jguinch
Il faut que tu recherche les fonctions appropriées qui te permettront de décortiquer la chaîne de caractères.
Dans la doc, il y a plein de fonctions de traitement de chaînes (String Management)

En gros, il faut :
- tester la longueur de la chaîne (4 caractères)
- récupérer le premier caractère (caractère de gauche)
- tester si ce caractère est un S ou un P
- récupérer les 3 derniers caractères (caractères de droite)
- tester si ces 3 caractères forment un nombre entier

Edit : bien sûr, le plus rapide est d'utiliser une expression régulière du genre "^[SP]\d{3}$", mais là c'est peut-être un peu plus compliqué à appréhender...

Re: [..] Conditions dans un inputbox

Posté : ven. 27 mars 2015 16:49
par Utilisateur 4174 supprimé
Les expressions régulières c'est bien la seule chose que je comprends. La difficulté pour moi c'est de l'utiliser dans Autoit et surtout les boucles...

"^[SP]1{1}\d{2}$" --> S100 à S199 et P100 à P199

Je suis perdu avec çà...
► Afficher le texte

Re: [..] Conditions dans un inputbox

Posté : ven. 27 mars 2015 17:53
par orax
Par défaut (flag=0) StringRegExp retourne 1 ou 0. 1, l'expression est vérifiée et 0, elle ne l'est pas. Donc si la valeur retournée n'est pas égale à 0, c'est que l'expression a été trouvée dans la chaîne.
Dans ce @error serait différent de 0 que si l'expression régulière est mauvaise (erreur de syntaxe).

Code : Tout sélectionner

#include <StringConstants.au3>
While 1
    $computer_name = InputBox("Modifier le nom de l'ordinateur", "Entrer le nom de l'ordinateur et cliquer sur OK", '')
    If StringRegExp($computer_name, "^[SP]1{1}\d{2}$") Then ExitLoop
    MsgBox(0, "Modifier le nom de l'ordinateur", "Veuillez respecter la convention de nommage.")
WEnd

Re: [..] Conditions dans un inputbox

Posté : ven. 27 mars 2015 20:43
par Utilisateur 4174 supprimé
Merci pour votre aide, après plusieurs jours à chercher...

Voici ma version finale :
► Afficher le texte

Re: [R] Conditions dans un inputbox

Posté : ven. 27 mars 2015 21:29
par jguinch
Juste une remarque sur la regex : le {1} n'est pas nécessaire.
^[SP]1\d{2}$ est suffisant