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 !
[R] Conditions dans un inputbox
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
-
- Status : Hors ligne
[R] Conditions dans un inputbox
Modifié en dernier par Utilisateur 4174 supprimé le ven. 27 mars 2015 20:43, modifié 1 fois.
Re: [..] Conditions dans un inputbox
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...
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...
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
-
- Status : Hors ligne
Re: [..] Conditions dans un inputbox
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 çà...
"^[SP]1{1}\d{2}$" --> S100 à S199 et P100 à P199
Je suis perdu avec çà...
► Afficher le texte
- orax
- Modérateur
- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: [..] Conditions dans un inputbox
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).
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
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
-
- Status : Hors ligne
Re: [..] Conditions dans un inputbox
Merci pour votre aide, après plusieurs jours à chercher...
Voici ma version finale :
Voici ma version finale :
► Afficher le texte
Re: [R] Conditions dans un inputbox
Juste une remarque sur la regex : le {1} n'est pas nécessaire.
^[SP]1\d{2}$ est suffisant
^[SP]1\d{2}$ est suffisant
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !