IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Free Pascal Discussion :

Récupérer le timestamp sous GNU Pascal ET Free Pascal


Sujet :

Free Pascal

  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 8
    Points : 2
    Points
    2
    Par défaut Récupérer le timestamp sous GNU Pascal ET Free Pascal
    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 ).
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    Program temps;
     
    uses crt,sysutils,dos;
     
    Type	TimeStamp = 
    		record
    		DateValid,
    		TimeValid	:	Boolean;
    		Year		:	Integer;
    		Month		:	1 .. 12;
    		Day			:	1 .. 31;
    		DayOfWeek	:	0 .. 6;   { 0 means Sunday }
    		Hour		:	0 .. 23;
    		Minute		:	0 .. 59;
    		Second		:	0 .. 61;  { to allow for leap seconds }
    		MicroSecond	:	0 .. 999999;
    		TimeZone	:	Integer;  { in seconds east of UTC }
    		DST			:	Boolean;
    		TZName1, TZName2	:	String[32];
    		end;
     
    Var		bidon : char;
    		h1,m1,s1,c1,h2,m2,s2,c2 : word;
    		h3,m3,s3 : integer;
    		t3_seconds	:	longint;
    		t1,t2	:	TimeStamp;
     
    BEGIN
     
    bidon:='a';
    while bidon<>'e' do
     
    	begin
    	writeln('Veuillez taper sur n''importe quelle touche, sauf "e"');
    	bidon:=readkey;
    	GetTime(h1,m1,s1,c1);
    	writeln('Veuillez a nouveau taper sur n''importe quelle touche, sauf "e"');
    	bidon:=readkey;
    	GetTime(h2,m2,s2,c2);
    	h3:=3600*(h2-h1);
    	m3:=60*(m2-m1);
    	s3:=h3+m3+(s2-s1);
    	writeln('Le temps qui s''est ecoule entre la premiere entree et la seconde est de : ');
    	writeln(s3,' secondes.');
    	writeln(' ');
     
     
    	writeln('Veuillez taper sur n''importe quelle touche, sauf "e"');
    	bidon:=readkey;
    	GetTimeStamp (t1);
    	writeln('Veuillez a nouveau taper sur n''importe quelle touche, sauf "e"');
    	bidon:=readkey;
    	GetTimeStamp (t2);
    	t3_seconds:=(t2.Second)-(t1.Second);
    	writeln('Le temps qui s''est ecoule entre la premiere entree et la seconde est de : ');
    	writeln(t3_seconds,' secondes.');
    	writeln(' ');
     
    	writeln('Tapez "e" pour quitter, une autre touche pour recommencer');
    	end;
     
    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

  2. #2
    Membre éclairé

    Inscrit en
    Avril 2003
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 284
    Points : 773
    Points
    773
    Par défaut
    Avec freepascal tu peux utiliser "now" ou Time qui sont des fonctions de bases qui te renvoient date et heure, ou heure....

    voici les fonctions disponibles :
    http://www.freepascal.org/docs-html/...eroutines.html

  3. #3
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 967
    Points : 59 728
    Points
    59 728
    Billets dans le blog
    2
    Par défaut
    Bonjour !

    En fait, lorsque l'on consulte le source de l'unité gpc-bp de GNU Pascal, on voit que la procédure GetTimeStamp consiste en fait en un appel à GetDate et à GetTime.

  4. #4
    Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Merci bcp,

    J'ai essayé les fonctions du lien de Clandestino, et elles fonctionnent sur free pascal comme sur gpc, sans probleme.

    Reste plus qu'a ce que je me concocte un gettimestamp "maison", à moins que vous sachiez me dire où je pourrais trouver les sources du Gettimestamp original

    En fait, pour bien faire, faudrait que je considere les changements d'années, années bissextiles et tout le reste, j'imagine que ca doit etre chaud a faire soi meme, d'où l'intéret d'avoir un simple gettimestamp qui m'auraient évité de nbreuses heures de cogitation là dessus.
    (tout ce qui m'intéresse, c'est d'avoir le nbre de jours, d'heures, de minutes et de secondes)

    En tout cas merci de votre aide

  5. #5
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 967
    Points : 59 728
    Points
    59 728
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Dark Eagle
    à moins que vous sachiez me dire où je pourrais trouver les sources du Gettimestamp original
    Ben dans l'unité gpc-bp :
    Citation Envoyé par Dans le message précédent, Alcatîz
    En fait, lorsque l'on consulte le source de l'unité gpc-bp de GNU Pascal, on voit que la procédure GetTimeStamp consiste en fait en un appel à GetDate et à GetTime.

  6. #6
    Membre éclairé

    Inscrit en
    Avril 2003
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 284
    Points : 773
    Points
    773
    Par défaut
    Il faut fouiller un peu plus le lien que j'ai donné...
    Si c'est vraiment une structure timestamp qui t'intéresse regarde l'exemple fourni ici :

    http://www.freepascal.org/docs-html/...timestamp.html

    on te montre comment la remplir

  7. #7
    Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Alcatîz
    Ben dans l'unité gpc-bp

    Oui ca je l'avais lu, mais je ne sais pas où elle se trouve

    Citation Envoyé par Clandestino
    Il faut fouiller un peu plus le lien que j'ai donné...
    Si c'est vraiment une structure timestamp qui t'intéresse regarde l'exemple fourni ici :

    http://www.freepascal.org/docs-html/...timestamp.html

    on te montre comment la remplir
    Merci je vais y regarder

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/02/2010, 22h12
  2. [Free Pascal] Différences Free Pascal et Turbo Pascal
    Par TheBigMac dans le forum Free Pascal
    Réponses: 2
    Dernier message: 10/04/2006, 16h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo