[Résolu] Filtres HH:MM:SS

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

[Résolu] Filtres HH:MM:SS

Message par Micoute »

Bonjour à tous,

J'aimerais faire un logiciel de conversion du temps et ne pouvant mettre l'option #Pb_String_Numeric, j'aurais besoin de filtres pour entrer le temps sous la forme "XX:XX:XX" ou comme vous l'avez compris les X sont des chiffres de 0 à 9, seulement les heures ne doivent dépasser 23 et les minutes et secondes 59 dans certains formats, car on peut entrer les valeurs en secondes, minutes, heures, jours, mois ou années en tant que chaines de nombres, car on peut convertir d'une unité dans une autre, mais je bloque sur l'option HMS, ou le filtre doit être "HH:MM:SS".

J'avais penser aux expressions régulières CreateRegularExpression(#PB_Any ,"[0-9]"), mais je ne sais pas comment ajouter ":" dans la chaîne de caractères.

Alors, comme d'habitude, je viens solliciter votre aide bienveillante et je vous en remercie beaucoup par anticipation.
Dernière modification par Micoute le jeu. 16/févr./2017 16:20, modifié 1 fois.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Marc56
Messages : 2198
Inscription : sam. 08/févr./2014 15:19

Re: Filtres HH:MM:SS

Message par Marc56 »

Micoute a écrit : J'avais penser aux expressions régulières CreateRegularExpression(#PB_Any ,"[0-9]"), mais je ne sais pas comment ajouter ":" dans la chaîne de caractères.
Dans sa forme la plus stricte 00:00:00 à 99:59:59

Code : Tout sélectionner

CreateRegularExpression(0, "[0-9][0-9]:[0-5][0-9]:[0-5][0-9]")

If MatchRegularExpression(0, InputRequester("Heure", "Entre l'heure au format HH:MM:SS", ""))
     MessageRequester("OK", "Format valide")
Else
     MessageRequester("Erreur", "Format non valide", #PB_MessageRequester_Error)
EndIf
Si tu veux au moins 1 chiffre pour les heures, mais sans limite:

Code : Tout sélectionner

CreateRegularExpression(0, "[0-9]+:[0-5][0-9]:[0-5][0-9]")
; ou plus classique
CreateRegularExpression(0, "[0-9]{1,}:[0-5][0-9]:[0-5][0-9]")
Note qu'il y a un tas de façons d'écrire une expression régulière, mais il vaut mieux privilégier la lisibilité.

Cependant, le plus souvent on utilise le gadget Spin qui permet de mettre une limite basse et haute.
Cependant il faut mettre 3 gadgets pour avoir H, M, S

:wink:
Dernière modification par Marc56 le jeu. 16/févr./2017 12:10, modifié 1 fois.
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Filtres HH:MM:SS

Message par Micoute »

Merci beaucoup Marc56, c'est une idée comme ça que je cherchais et je ne vois pas pourquoi que ça ne fonctionnerait pas.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Répondre