Page 1 sur 1
Insertion au lancement du programme de la date de compil.
Publié : jeu. 20/janv./2005 10:08
par GG
Bonjour à tous,
Je souhaiterais qu'à chaque compilation de mon programme s'insère au lancement de celui ci la date et heure de compilation. Pas de problème pour afficher la date/heure du moment, mais pas celle de la compilation. Savez vous comment faire ? Je ne trouve pour l'instant pas de solution même avec les directives de compilation CompilerIf.
D'avance, merci à tous pour vos réponses et aides sur le sujet.
Publié : jeu. 20/janv./2005 10:35
par nico
C'est pas bien compiqué si tu as jaPBe, il suffit de mettre dans:
Projet-Option du projet-Onglet Version
une des variables comme %date%
Par contre, il n'y a pas de variable pour l'heure (fait une demande à l'auteur), sinon il te reste la possibilité de l'écrire à chaque compilation.
Publié : jeu. 20/janv./2005 11:19
par GG
Tout à fait, mais je n'arrive pas à utiliser cette variable, que ce soit dans mon source (il ne comprend pas cette variable à la compilation) ou dans l'onglet que tu m'as cité. Je vois bien que dans l'onglet variable jaPBe la liste des différentes variables que l'on peut attribuer.
Je regarde...
Merci pour l'info.
Publié : jeu. 20/janv./2005 12:17
par nico
Il n'y a pas de problème pourtant.
Je ne vois pas de quoi tu parles quand tu dis vouloir utiliser cette variable dans le code source; qu'est-ce que tu fais exactement?
Publié : jeu. 20/janv./2005 12:37
par GG
En gros, j'ai bien compris la présence de la variable jaPBe %date-%, mais je pensais l'inclure avec une directive de compilation.
Bref, je n'arrive pas à l'utiliser.
Publié : jeu. 20/janv./2005 13:28
par nico
Quel rapport y a t'il entre cete variable et le code source

, je ne comprend pas ton raisonnement.
Publié : jeu. 20/janv./2005 13:46
par gansta93
Mais on ne peut pas faire ce qu'il veut avec %DaTEM... lui ce qu'il voudrait, c affichier par exemple une boîte de dialogue au démarrage de son programme qui afficherait "Programme compilé le (date de compilation) à (heure de compilation)."
Enfin c ce que j'ai compris.
Mais je ne vois pas comment faire.
Publié : jeu. 20/janv./2005 13:56
par GG
Mon hypothèse initiale était :
Si mon exécutable doit afficher la date de compilation, il faut que je lui indique à un moment donné dans mon source une variable récupérant le %date% de la variable jaPBe. Mais cette variable %date% est inconnue (à ma connaissance) du compilateur Purebasic. Du coup, je ne vois pas comment l'intégrer pour que mon programme la prenne en compte.
Ce que je voudrais, c'est que mon programme (qui est en mode console), à son lancement, m'affiche (je pensais via un printN) la date de compilation éventuellement récupérée avec une directive de compilation incluant la variable %date%.
Ex :
Mon source :
Je compile aujourd'hui
A l'exécution (quelque soit la date) , je souhaiterais avoir :
Test - Compilé le 20.01.2005
Si je réutilise le même exécutable dans 1 mois, je souhaiterais qu'il m'affiche la même chose.
Par contre, si demain (21) je le recompile, et que j'utilise l'éxécutable nouvellement généré après demain (22), il doit m'afficher :
Test - Compilé le 21.01.2005
Je ne sais pas si j'arrive bien à m'exprimer...

Publié : jeu. 20/janv./2005 14:32
par GG
La seule solution envisageable (non encore testée) selon moi serait d'avoir un autre programme résident (ou une macro) qui avant de compiler le source en question, me génèrerait un .pb qui serait appelé dans mon source, et qui incluerait une définition d'une variable contenant la date du jour, et qui serait appelée dans mon PrintN de mon source.
Un peu agricole comme méthode, mais bon...

Publié : jeu. 20/janv./2005 14:51
par nico
Ok, j'ai bien compris ce que tu cherches à faire.
Ton idée me parait excellente

, sinon on peut aussi modifier l'exe, le soldat à poster un code là dessus mais ton idée reste la meilleur à mon sens.
Publié : jeu. 20/janv./2005 15:16
par GG
Je confirme, ça marche.
Pas très sexy comme méthode.
Ca pourrait être pas mal, pour éviter ma méthode qui nécessite de lancer un exe avant compilation du source souhaité, de pouvoir effectuer cela via des directives de compilations.
Publié : jeu. 20/janv./2005 15:26
par nico
Oui ça marche mais c'est pas très pratique, en plus il faut lancer deux fois de suite le source avant de compiler.
Code : Tout sélectionner
; on fait les essais avec le debugger en mettant CompilerIf 1
;(au moins deux fois car Pb inclut le fichier avant sa modification)
; puis à la compilation on met CompilerIf 0
CompilerIf 1
If CreateFile(0,"c:\date.pb")
Debug 4
date$= FormatDate("A=%yyyy, M= %mm, J=%dd", Date())
heure$= FormatDate("%hh:%ii:%ss", Date())
WriteStringN("Date$="+Chr(34)+date$+Chr(34))
WriteStringN("heure$="+Chr(34)+heure$+Chr(34))
CloseFile(0)
EndIf
CompilerEndIf
XIncludeFile "c:\date.pb"
MessageRequester("Info", date$ +" "+ heure$)
Si Fred pouvait nous faire quelque chose pour que les directives de compilation accepte les variables et les fonctions.
Publié : jeu. 20/janv./2005 16:02
par gansta93
Cool ce code.

Publié : jeu. 20/janv./2005 16:04
par GG
Pour ma part, j'ai séparé les 2 codes.
Publié : jeu. 20/janv./2005 16:31
par Le Soldat Inconnu
on peut aussi faire un outil qui lance la compilation après avoir inséré la date dans le code.