Page 1 sur 1

Version d'un pack

Publié : jeu. 03/janv./2008 13:30
par Kwai chang caine
Bonjour à tous

J'ai réuni dans un pack quelques programmes auquels je donne chacun une version

Code : Tout sélectionner

Utilitaire1 v2.0
Utilitaire2 v1.1
Utilitaire2 v3.1
Je voudrais savoir si vous auriez une idée, pour que la version de mon pack puisse contenir l'ensemble des versions des logiciels afin que je sache sans erreur possible en relisant la version du pack quelle sont les versions et logiciels contenu dans ce dernier.
Sans avoir à tenir à jour une base de données

Je sais c'est encore une question à la c.. :oops:
Mais on sait jamais, y'a tellement de bonnes idées dans ce forum. :D

Bonne journée

Publié : jeu. 03/janv./2008 20:23
par Jacobus
Ben sans base de données tu peux quand même faire un fichier texte contenant ta liste que tu mets automatiquement à jour en même temps que ton pack... :) Tu affiches le tout dans un listicongadget par exemple, comme ça tu peux ajouter les icônes de tes logs.

Publié : jeu. 03/janv./2008 23:26
par case
ce n'est pas impossible mais c'est tendu quand meme :)

attention ce qui suit est issu de mon imagination debordante et peut semer la confusion dans un esprit non préparé :)

en s'inspirant de l'encodage utf8 tu peux generer un espece de numero de serie qui contiendrais tout ca

pour connaitre les logiciels contenus dans l'archive tu assigne a chacun de tes logiciels un bit sur un nombre a 6 bits ce qui donne comme des packs de logiciels par 6

logiciel 01 %000001
logiciel 02 %000010
logiciel 03 %000100
logiciel 04 %001000
logiciel 05 %010000
logiciel 06 %100000

logiciel 07 %000001
logiciel 08 %000010
logiciel 09 %000100
logiciel 10 %001000
logiciel 11 %010000
logiciel 12 %100000

logiciel 13 %000001
logiciel 14 %000010
logiciel 15 %000100
logiciel 16 %001000
logiciel 17 %010000
logiciel 18 %100000

par exemple dans ton archive tu as les logiciels 1 3 5 et 6
ca donnerais toujours sur 6 bits %110101

pour mettre ca dans ton numero de serie tu les encode dans un nombre a 8bit

le premier bit mis a 1 indique qu'il s'agis du numero de logiciel
le second mis a 1 signifie qu'il y a d'autre logiciels dans le pack mis a zero on a fini l'enumeration des logiciels contenus

exemple si dans le pack tu as les logiciels 1 3 5 6
ca donnerais %10110101

si tu ajoute le logiciel n° 8

ca donnerais %11110101 %10000010

si dans le pack tu as les logiciels 1 et 16

ca donnerais

%11000001 %11000000 %10000100

ensuite le numero de version

pour chaque logiciel contenu dans le pack dans l'ordre tu encode les versions dans un nombre a 8bit
les 4 bit de pids forts contiennent la version les 4 de poids faible la decimale

exemple pour un logiciel dont la version serais 3.8

%00111000 ce qui reviens en fait a prendre le numero de version sans la virgule

3.8= %00111000 = 38 en hexadecimal

enfin tu peux convertir les nombres binaires sur8 bit en hexadecimal ou en ascii pour integrer ca a ton nom de pack. je recommande l'hexadecimal bien que moins compact que l'ascii car certain caracteres pourraient ne pas etre autorises dans les noms de fichiers

personellement je prendrais plutot l'option fichier texte ou base de données :)

exemple concret

logiciel 1 V3.8
logiciel 4 V1.4
logiciel 10 v2.5
logiciel 14 v4.5
logiciel 18 v1.0


hexadecimal -> ascii
logiciel 1 et 4
%11001001 (%11 001001)->C9->╔



logiciel 10

%11001000 (%11 001000)->C8->╚

logiciel 14 et 18

%10100010 (%10 100010)->A2->ó


versions

3.8
%00111000 ->38->8
1.4
%00010100 ->14->¶
2.5
%00100101 ->25->%
4.5
%01000101 ->45->E
1.0
%00010000 ->10->►


ce qui donnerais pour le nom du pack

C9C8A23814254510



attention c'est juste une piste a creuser :)

Publié : ven. 04/janv./2008 8:58
par Kwai chang caine
@JACOBUS
Merci de ta reponse.
Mais justement mon souhait etait que rien que par la version je puisse tout connaitre du pack.
Alors qu'avec un fichier, ça oblige le client à t'envoyer le fichier ou bien à stocker tous les config de packs.
C'etait un peu ce que je voulais éviter. :wink:

@CASE
Alors la !!!! 8O
De bon matin et pourtant les neurones tout neuf, j'y avais rien compris.

J'ai donc fait apel à mon chef qui est un peu matheux et à deux on a mis 1/2 heure pour comprendre.
Heureusement que tu avait prévenu, on s'etait muni de sac à glace, et aspirine.

Tu es génial !!!!

Nadine,mais comment vous faites tous pour m'épater de jours en jours dans tant de domaines differents. 8O
Si ça c'est pas de la haute voltige !!!!

Encore bravo, je vais faire le code illico presto, j'suis déjà préssé de voir ce que ça va donner.
Une question pour la table UTF8 elle est pas dans pure ???
Y'a juste l'ASCII ?

Mille merci
Je vous souhaite une excellente journée

Publié : ven. 04/janv./2008 13:51
par brossden
Tous mes voeux à tous !

Tout particulièrement à mon Kwai.C.C.

Si tu tiens à jour le paramètre version de tes executables (Options du projet) avant la compilation il te suffit de lire dans l'executable lui-même pour chaque EXE le numéro de la version et ça sans te casser la nenette avec l'algèbre de Boole !

Code : Tout sélectionner

rep.s = PathRequester("Choissiez la directorie contenant les EXE","c:\")
If ExamineDirectory(0, rep,"*.exe")  
  While NextDirectoryEntry(0) 
    File.s  = rep+"\"+DirectoryEntryName(0)
    txt.s + LSet(GetFilePart(File),30,"." )+ Chr(9) + GetFileVersion(File,1 ,1)+ Chr(13)+Chr(10)
  Wend
  FinishDirectory(0)
  MessageRequester(rep,txt)
EndIf

Publié : ven. 04/janv./2008 19:30
par case
@brossden en fait d'apres ce que j'ai compris il veux distribuer un pack contenant plusieurs logiciels et savoir juste avec le nom du pack ce qu'il distribue.

quand a l'utf8 il est bien géré en interne par purebasic mais mon idée est INSPIREE par la maniere dont est encodé l'utf8 ce n'est pas de l'utf8.

:)

par contre mon conseil serais de laisser tomber les numeros de versions car cela rallonge vraiment le nom dans mon exemple 18 n° de versions = 36 caracteres ca fais long pour un nom de pack.

enfin c'est a toi de voir :)

Publié : dim. 06/janv./2008 11:51
par Kwai chang caine
Tous mes voeux à tous !
Tout particulièrement à mon Kwai.C.C.
Merci mon bon BROSSDEN adoré :D
Je te souhaite la meme chose.

Tu te fais rare :cry:
Je suis content de revoir tes petits doigts boudinés bouger à gauche dans ton avatar :D
quand a l'utf8 il est bien géré en interne par purebasic mais mon idée est INSPIREE par la maniere dont est encodé l'utf8 ce n'est pas de l'utf8.
Bon d'accord, mais ou est la table, car pour voir l'ASCII on fait outils/Table ASCII mais l'UTF8 n'est pas incorporée ? :cry:
par contre mon conseil serais de laisser tomber les numeros de versions car cela rallonge vraiment le nom dans mon exemple 18 n° de versions = 36 caracteres ca fais long pour un nom de pack.
enfin c'est a toi de voir
Oui j'ai vu, mais c'est quand meme genial et pour l'instant la meilleure solution que j'ai. Donc je reste sur celle la jusqu'a nouvel ordre. :D
Pour les versions, je ne peux pas laisser tomber c'est justement à cause d'elles que je suis obligé de faire ça.

En fait l'ensemble des giciels fais plusieurs Mo et on a à la boite un reseau 10 ko, donc ça rame et on est limité par la taille des mails.
Donc mon idée etait qu'en conaissant le contenu du pack, j'envoie juste les nouveautées, je fais l'update que de ce qui est besoin, pif paf, la version du pack change automatiquement par un code intégré dans le pack , et c'est kif kif bouricot que si je m'etais tapé tous le pack à envoyer :D

Encore merci à tous quoi qu'il en soit. 8)

Y'a peut etre une methode pour compresser ce numero ??? :roll:
On ne sait jamais si quelqu'un a une autre idée, avec plusieurs bon legumes on fait une mega soupe de la mort :lol: