Page 1 sur 1
Version compilateur, type cpu et date de compilation
Publié : ven. 08/sept./2017 13:31
par Marc56
Il est assez courant d'oublier avec quoi on a compilé un programme
et donc pourquoi cette ancienne version marchait et pas celle qu'on vient de compiler

Une petite ligne qui permet d'un seul coup d'identifier pour vos programmes:
- Version de PureBasic
- Type de cpu (32 ou 64 bits)
- Date de compilation (ici au format ISO pour vos programmes internationaux
Code : Tout sélectionner
Global Version.s = "Compilation: PureBasic " + StrF(#PB_Compiler_Version / 100.0, 2) +
"/" + Str(#PB_Compiler_Processor * 16) + " Bits - " +
FormatDate("%yyyy/%mm/%dd - %hh:%ii:%ss", #PB_Compiler_Date)
Donne par exemple:
Compilation: PureBasic 5.60/64 Bits - 2017/09/08 - 14:25:35
Utile à mettre dans la boite "À propos de" ou dans la barre d'état au démarrage.
Permet aussi à l'utilisateur d'indiquer au support quelle est la version qu'il utilise.
Je mets ça dans ma liste de modèle.

Re: Version compilateur, type cpu et date de compilation
Publié : ven. 08/sept./2017 14:40
par Kwai chang caine
Merci...ce qui serait cool c'est que PB le marque automatiquement en bas en commentaires (et qu'on ne voit pas) dans les options qu'il enregistre

Le code serait marqué à vie
Tu as raison, des fois j'essaie plusieurs version avant de trouver la bonne, et j'ai trop la flemme de le marquer moi-même...mais je me force quand même

Re: Version compilateur, type cpu et date de compilation
Publié : ven. 08/sept./2017 16:21
par venom
Kwai chang caine a écrit :ce qui serait cool c'est que PB le marque automatiquement en bas en commentaires (et qu'on ne voit pas) dans les options qu'il enregistre
Mais purebasic le fait ça

Ouvre un fichier .pb dans bloc note, tu verra en bas de tes codes tu a la version de pb et d'autres infos
@++
Re: Version compilateur, type cpu et date de compilation
Publié : ven. 08/sept./2017 19:48
par Kwai chang caine
Oui je sais, mais si tu lances un code qui ne fonctionne pas, et bien l'IDE va quand même le "marquer" avec sa version qui en fin de compte n'est pas la bonne
Ce qui serait cool, c'est qu'il ne la marque que si il peut terminer la compilation.
Ou bien noter la version de l'ide qui l'a sauvegardé, et celui qui a pu le compiler...

Re: Version compilateur, type cpu et date de compilation
Publié : ven. 08/sept./2017 20:02
par venom
Ah ok, je comprend mieux.
@++
Re: Version compilateur, type cpu et date de compilation
Publié : lun. 11/sept./2017 7:46
par blendman
Merci Marc
Je me servais déjà de la date, mais ajouter la compilation purebasic est une super idée !
ça permet de se rappeler avec quelle version de pb on a compiler notre programme
Du coup, je l'ai ajouté dans l'application sur laquelle je bosse en ce moment

Re: Version compilateur, type cpu et date de compilation
Publié : lun. 11/sept./2017 11:05
par Marc56
Kwai chang caine a écrit :Oui je sais, mais si tu lances un code qui ne fonctionne pas, et bien l'IDE va quand même le "marquer" avec sa version qui en fin de compte n'est pas la bonne
Ce qui serait cool, c'est qu'il ne la marque que si il peut terminer la compilation.
Ou bien noter la version de l'ide qui l'a sauvegardé, et celui qui a pu le compiler...

Si le code ne fonctionne pas, il ne sera pas marqué (logique)
Si tu veux faire plus élaboré, tu peux par exemple faire générer un fichier d'historique de compilation dans le répertoire de l'EXE. Automatiquement.
Tu en fais un programme, que tu paramètres comme
outils avec comme
option de lancement
"Après avoir créé un exécutable"
Exemple de programme qui va ajouter une ligne à chaque compilation réussie:
(Si on ne veut pas ajouter, supprimer #PB_File_Append)
Code : Tout sélectionner
EnableExplicit
Global Version.s = "PureBasic " + StrF(#PB_Compiler_Version / 100.0, 2) +
"/" + Str(#PB_Compiler_Processor * 16) + " Bits - " +
FormatDate("%yyyy/%mm/%dd - %hh:%ii:%ss", #PB_Compiler_Date)
Define ID_File
Define FileName.s = GetPathPart(ProgramFilename()) + "/StampFile.txt"
ID_File = OpenFile(#PB_Any, FileName, #PB_File_Append)
If ID_File
WriteString(ID_File, #CRLF$ + GetFilePart(ProgramFilename()) + ": " + Version)
CloseFile(ID_File)
Else
MessageRequester("Erreur", "Impossible d'écrire le fichier d'info version")
EndIf
À adapter car là ça donne la date du programme de marquage et pas celle du programme compilé.
(il faut passer une variable: voir le bouton INFO dans la gestion des outils)
Re: Version compilateur, type cpu et date de compilation
Publié : lun. 11/sept./2017 11:30
par Kwai chang caine
Si le code ne fonctionne pas, il ne sera pas marqué (logique)
Bah si....
Si tu sauvegardes le code avec une version qui compile pas, je pense qu'il sera bien marqué de la version qui l'a sauvegardé, pas celle qui l'a compilé
Je parle bien de sauvegarde manuelle, pas de sauvegarde avant la compile, et encore si ça se trouve comme PB fait une sauvegarde avant compile, ça doit surement le marquer même si ça compile pas jusqu'au bout.
En tout cas merci pour la combine

Re: Version compilateur, type cpu et date de compilation
Publié : lun. 11/sept./2017 12:45
par Micoute
Ce qui serait bien, ce serait de mettre tous ces renseignement dans un fichier résident, pour que ça s'inscrive automatiquement dans chaque fichier qu'on compile.
Re: Version compilateur, type cpu et date de compilation
Publié : mer. 15/avr./2026 15:20
par Francois
Bonjour,
Je sais que ce sujet est assez vieux, mais j'ai trouvé intéressant de rajouter une version plus complète qui donnera peut-être quelques idées à certains.
Les 5 premières constantes peuvent être directement renseignées dans les options du compilateur sans avoir besoin de les déclarer dans le code :
Projet -> Option du projet -> Options du compilateur -> Informations de Version
Bien sûr, il faudra au préalable créer le projet : Projet -> Nouveau Projet...
Pour obtenir une meilleure présentation, on peut créer de toute pièce une fenêtre à la place de la commande "MessageRequester"
Ici j'ai simplement voulu donner quelques idées.
F.R.
Code : Tout sélectionner
#PB_Editor_ProductName = "Petit test"
#PB_Editor_ProductVersion = "v38"
#PB_Editor_LegalCopyright = "F.R."
#PB_Editor_LegalTrademarks = "It's legal of course..."
#PB_Editor_Email = "MyMail@bidon.bid"
About$ = #PB_Editor_ProductName + " " + #PB_Editor_ProductVersion
About$ = About$ + #CRLF$ + #CRLF$ + #PB_Editor_LegalCopyright + #CRLF$ + #PB_Editor_LegalTrademarks + #CRLF$ + #PB_Editor_Email
About$ = About$ + #CRLF$ + #CRLF$ + "Compilation : " + #CRLF$ + "PureBasic " + StrF(#PB_Compiler_Version / 100.0, 2) + " ("
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_Windows
About$ = About$ + "Windows "
Select OSVersion()
Case #PB_OS_Windows_NT3_51
About$ = About$ + "NT 3.51"
Case #PB_OS_Windows_95
About$ = About$ + "95"
Case #PB_OS_Windows_NT_4
About$ = About$ + "NT 4"
Case #PB_OS_Windows_98
About$ = About$ + "98"
Case #PB_OS_Windows_ME
About$ = About$ + "ME"
Case #PB_OS_Windows_2000
About$ = About$ + "2000"
Case #PB_OS_Windows_XP
About$ = About$ + "XP"
Case #PB_OS_Windows_Server_2003
About$ = About$ + "Server 2003"
Case #PB_OS_Windows_Vista
About$ = About$ + "Vista"
Case #PB_OS_Windows_Server_2008
About$ = About$ + "Server 2008"
Case #PB_OS_Windows_7
About$ = About$ + "7"
Case #PB_OS_Windows_Server_2008_R2
About$ = About$ + "Server 2008 R2"
Case #PB_OS_Windows_8
About$ = About$ + "8"
Case #PB_OS_Windows_Server_2012
About$ = About$ + "Server 2012"
Case #PB_OS_Windows_8_1
About$ = About$ + "8.1"
Case #PB_OS_Windows_Server_2012_R2
About$ = About$ + "Server 2012 R2"
Case #PB_OS_Windows_10
About$ = About$ + "10"
Case #PB_OS_Windows_Server_2016
About$ = About$ + "Server 2016"
Case #PB_OS_Windows_Server_2019
About$ = About$ + "Server 2019"
Case #PB_OS_Windows_Server_2022
About$ = About$ + "Server 2022"
Case #PB_OS_Windows_11
About$ = About$ + "11"
Case #PB_OS_Windows_Server_2025
About$ = About$ + "Sercer 2025"
Default
About$ = About$ + "Unknown Windows version"
EndSelect
CompilerCase #PB_OS_Linux
About$ = About$ + "Linux "
Select OSVersion()
Case #PB_OS_Linux_2_2
About$ = About$ + "2.2"
Case #PB_OS_Linux_2_4
About$ = About$ + "2.4"
Case #PB_OS_Linux_2_6
About$ = About$ + "2.6"
Default
About$ = About$ + "Unknown Linux version"
EndSelect
CompilerCase #PB_OS_MacOS
About$ = About$ + "Mac OS "
Select OSVersion()
Case #PB_OS_MacOSX_10_0
About$ = About$ + "10.0"
Case #PB_OS_MacOSX_10_1
About$ = About$ + "10.1"
Case #PB_OS_MacOSX_10_2
About$ = About$ + "10.2"
Case #PB_OS_MacOSX_10_3
About$ = About$ + "10.3"
Case #PB_OS_MacOSX_10_4
About$ = About$ + "10.4"
Case #PB_OS_MacOSX_10_5
About$ = About$ + "10.5"
Case #PB_OS_MacOSX_10_6
About$ = About$ + "10.6"
Case #PB_OS_MacOSX_10_7
About$ = About$ + "10.7"
Case #PB_OS_MacOSX_10_8
About$ = About$ + "10.8"
Case #PB_OS_MacOSX_10_9
About$ = About$ + "10.9"
Case #PB_OS_MacOSX_10_10
About$ = About$ + "10.10"
Case #PB_OS_MacOSX_10_11
About$ = About$ + "10.11"
Case #PB_OS_MacOSX_10_12
About$ = About$ + "10.12"
Case #PB_OS_MacOSX_10_13
About$ = About$ + "10.13"
Case #PB_OS_MacOSX_10_14
About$ = About$ + "10.14"
Case #PB_OS_MacOSX_10_15
About$ = About$ + "10.15"
Case #PB_OS_MacOSX_11
About$ = About$ + "10.11"
Case #PB_OS_MacOSX_12
About$ = About$ + "10.12"
Case #PB_OS_MacOSX_13
About$ = About$ + "10.13"
Case #PB_OS_MacOSX_14
About$ = About$ + "10.14"
Case #PB_OS_MacOSX_15
About$ = About$ + "10.15"
Default
About$ = About$ + "Unknown Mac OS version"
EndSelect
CompilerDefault
About$ = About$ + "Unknown OS"
CompilerEndSelect
About$ = About$ + " - "
CompilerSelect #PB_Compiler_Processor
CompilerCase #PB_Processor_mc68000
About$ = About$ + "MC68000"
CompilerCase #PB_Processor_x86
About$ = About$ + "x86"
CompilerCase #PB_Processor_PowerPC
About$ = About$ + "PowerPC"
CompilerCase #PB_Processor_x64
About$ = About$ + "x64"
CompilerCase #PB_Processor_JavaScript
About$ = About$ + "JavaScript"
CompilerCase #PB_Processor_Arm64
About$ = About$ + "Arm64"
CompilerCase #PB_Processor_Arm32
About$ = About$ + "Arm32"
CompilerDefault
About$ = About$ + "Unknown processor"
CompilerEndSelect
About$ = About$ + ")"
About$ = About$ + #CRLF$ + "du " + FormatDate("%dd/%mm/%yyyy - %hh:%ii:%ss", #PB_Compiler_Date)
MessageRequester(#PB_Editor_ProductName + " " + #PB_Editor_ProductVersion, About$, #PB_MessageRequester_Ok + #PB_MessageRequester_Info)