Récupérer le timestamp sous GNU pascal ET free pascal

Récupérer le timestamp sous GNU pascal ET free pascal - Delphi/Pascal - Programmation

Marsh Posté le 18-03-2007 à 17:52:52    

Bonjour,
 
Je suis en train de programmer un Sudoku en Pascal pour ma Fac (projet de fin d'année).
 
Actuellement je travaille avec l'environnement Dev Pascal (compilateur Free pascal), mais mon programme doit etre parfaitement portable, c'est à dire compilable aussi bien sous gnu pascal que sous free, sous Windows, Unix et Linux.
 
Pour le moment tout va bien (enfin je n'arrive pas à utiliser Dev pascal GNU, autre version de celle sur laquelle je bosse actuellement, suite à des problemes de chemins de dossiers, etc ... mais sous Unix (environnement SUN solaris), ca marche sans probleme avec gpc).
 
Le problème est le suivant : j'aimerais récupérer le Timestamp à la création d'un compte joueur, un autre lors de l'affichage de statistiques du joueur (ancienneté toussa :o ), ainsi qu'en récupérer 2 autres en début et fin de partie, pour récupérer la durée de celle ci (oui je sais on a du le deviner :D ).
Seulement je n'arrive pas à utiliser la commande GetTimeStamp, il me dit (le compilateur freepascal) que ca ne va pas, ou plus précisément :
 
"Identifier not found GETTIMESTAMP".
 
Alors qu'en me rendant sur cette page, on voit bien qu'il n'y a aucune unité utilisée, et que "ca marche" ...
 
Voici la source du fichier de test "test_time.pas" :
 

Code :
  1. Program temps;
  2. uses crt,sysutils,dos;
  3. Type TimeStamp =
  4.  record
  5.  DateValid,
  6.  TimeValid : Boolean;
  7.  Year  : Integer;
  8.  Month  : 1 .. 12;
  9.  Day   : 1 .. 31;
  10.  DayOfWeek : 0 .. 6;   { 0 means Sunday }
  11.  Hour  : 0 .. 23;
  12.  Minute  : 0 .. 59;
  13.  Second  : 0 .. 61;  { to allow for leap seconds }
  14.  MicroSecond : 0 .. 999999;
  15.  TimeZone : Integer;  { in seconds east of UTC }
  16.  DST   : Boolean;
  17.  TZName1, TZName2 : String[32];
  18.  end;
  19. Var  bidon : char;
  20.  h1,m1,s1,c1,h2,m2,s2,c2 : word;
  21.  h3,m3,s3 : integer;
  22.  t3_seconds : longint;
  23.  t1,t2 : TimeStamp;
  24. BEGIN
  25. bidon:='a';
  26. while bidon<>'e' do
  27. begin
  28. writeln('Veuillez taper sur n''importe quelle touche, sauf "e"');
  29. bidon:=readkey;
  30. GetTime(h1,m1,s1,c1);
  31. writeln('Veuillez a nouveau taper sur n''importe quelle touche, sauf "e"');
  32. bidon:=readkey;
  33. GetTime(h2,m2,s2,c2);
  34. h3:=3600*(h2-h1);
  35. m3:=60*(m2-m1);
  36. s3:=h3+m3+(s2-s1);
  37. writeln('Le temps qui s''est ecoule entre la premiere entree et la seconde est de : ');
  38. writeln(s3,' secondes.');
  39. writeln(' ');
  40. writeln('Veuillez taper sur n''importe quelle touche, sauf "e"');
  41. bidon:=readkey;
  42. GetTimeStamp (t1);
  43. writeln('Veuillez a nouveau taper sur n''importe quelle touche, sauf "e"');
  44. bidon:=readkey;
  45. GetTimeStamp (t2);
  46. t3_seconds:=(t2.Second)-(t1.Second);
  47. writeln('Le temps qui s''est ecoule entre la premiere entree et la seconde est de : ');
  48. writeln(t3_seconds,' secondes.');
  49. writeln(' ');
  50. writeln('Tapez "e" pour quitter, une autre touche pour recommencer');
  51. end;
  52. END.


 
Je fais donc appel à vous, j'aimerais en fait trouver une fonction/unité "universelle" qui puisse fonctionner avec n'importe quel compilateur, ou du moins une méthode pas trop compliquée pour faire ce que je veux, expliqué plus haut.
 
Merci d'avance à tout le monde :)


---------------
Gates gave you the windows. GNU gave us the whole house.
Reply

Marsh Posté le 18-03-2007 à 17:52:52   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed