Saisie de l'heure

firas scofield Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
 Profil bloqué -
bonjour
j'étais en train de résoudre un probleme pascal mais j'arrive pas a faire le saisie de l'heure.
en effet la valeur horaire a saisie doit etre de type chaine de caratctere et sous la forme suivante:
"hh:mm:ss"
j'ai essayé comme ça: ecrire('hh:mm:ss'), lire(hh,mm,ss) mais j'arrive pas
je demande votre aide car j'ai essayé une journée complété mais sans résultat.
s'il vous plait c'est très urgent
A voir également:

1 réponse

Profil bloqué
 
Salut

Si tu déclares :
var Heure : String;
Si l'utilisateur entre la chaine : 23:19:59
L'instruction :
ReadLn(HH, MM, SS);
renvoie l'erreur : Identificateur
HH non déclaré, ainsi on pense que le compilateur est assez doué de comprendre ce qu'on souhaite, ce qui n'est pas le cas.

Meme si on peut par un traitement spécifique décomposer une telle chaine, extraire les valeurs, nous nous voyons enfin de compte obligé d' encoder les valeurs pour former une valeure TDateTime valide, un tel choix est couteux et inutile.

Voici une solution plus au moins optimisée :

program Former_Heure;

var HH, MM, SS : Word;
Time : TDateTime;

begin

{ Attention, les valeurs saisies sont supposées
dans les limites de la formation des nombres sexagésimaux }

Write('Heure : 0 .. 23 : ');
ReadLn(HH);
Write('Minutes : 0 .. 59 : ');
ReadLn(MM);
Write('Secondes : 0 .. 59 : ');
ReadLn(SS);

Time := EncodeTime(HH, MM, SS, 00);

WriteLn;

WriteLn('L''heure saisie est : ', TimeToStr(Time));
ReadLn;
{ TODO -oUser -cConsole Main : placez le code ici }
end.
0