Bonjour,
comment peut-ont faire un filtre IP sur un champ texte (SWT)
par exemple si une personne saisie
127.0.0 ou
127.0.f.ggg
je renvoi une erreur
Merci de votre aide.
Bonjour,
comment peut-ont faire un filtre IP sur un champ texte (SWT)
par exemple si une personne saisie
127.0.0 ou
127.0.f.ggg
je renvoi une erreur
Merci de votre aide.
'jai resolu le probleme avec les regex
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 String StrRegEx; String StrIP = "127.0.0.1"; StrRegEx = "^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$"; if (!StrIP.matches(StrRegEx)) { Msg = "IP invalide"; Err = true; }
Pour aller plus loin, l'idéal est un contrôle de la saisie en temps réel, dans un champ de saisie pré formatté. Par pré formattage j'entends que les séparateurs sont pré renseignés et non modifiables, et que les 4 champs de l'adresse IP sont bloqués à 3 caractères.
Le contrôle en temps réel nécessite de bloquer la saisie d'un caractère invalide dès qu'il est frappé au clavier. La mécanique est là beaucoup plus complexe.
C'est tout le principe des formatteurs du composant FormattedText de Nebula.
Pour l'instant il y a des formatteurs pour les types de base : dates, numériques, chaines formattées de type n° de téléphone.
Pour la saisie d'une adresse IP, il serait par exemple possible d'utiliser le MaskFormatter avec un masque ###.###.###.###. Mais il faudrait également controler que l'utilisateur ne saisi dans les 4 champs que des valeurs comprises entre 0 et 255.
En combinant le MaskFormatter et ton contrôle par expression régulière, cela te permettrait de réduire les erreurs de saisie.
J'avais dans l'idée de développer de nouveaux formatteurs notamment pour les adresses IP et les couleurs (décimal ou hexa), mais je n'ai pas encore trouvé le temps. Mais je ne désespère pas...
Partager