Vous n'êtes pas identifié.
Ce message s'adresse a tout ceux qui en ont assez d'avoir XX fichiers associés a un exe (sur Graph100 bien sur).
Jusqu'à recemment, SW comptait pas moins de 10 fichiers externes... Soit 11 fichiers avec l'EXE. Comme la plupart (tous?) des explorateurs ne font pas le tri entre les fichiers contenus dans un dossier et les autres, c'était problematique... Il y'a, bien sur, la solution (tres pratique) de mettre le meme debut a chaque fichier (ex: "SW_") comme ca les fichiers sont regroupés dans l'explo...
Bref, je ne voyais pas comment faire. Si ce n'est faire un seul fichier externe, mais bon, ca aurait toujours fait un fichier en plus de l'exe.
Et puis, en verifiant les messages sur le forum, je trouve le topic sur un standard pour exe. [...] pourquoi ne pas mettre des infos telles que le nom, copyright etc... a la fin d'un exe ? L'idée est née de la : pourquoi ne pas mettre les fichiers externes à la fin de l'exe ?!?
Un vendredi soir et un samedi entier plus tard... XFiles2One était né!!!
Je selectionne les 10 fichiers externes, j'appuie sur Automatic Build et hop tout Shadow World se retrouve dans un exe de 84Ko (62Ko en compressé)... Le tout sans ralentir les temps de chargement du jeu.
Principe de XFiles2One en mode "Automatic Build":
1- genere un header .h contenant les defines pour les offsets des fichiers
dans l'exe.
2- execute automatiquement TCC pour compiler l'exe (arguments parametrables)
3- compresse l'exe (si on veut) avec UPX
4- regarde la taille de l'exe pour savoir s'il faut mettre a jour le header.
-> la taille a changée, on recommence à 1-
-> taille identique suite...
5- on ecrit les differents fichiers a la fin de l'exe.
Infos:
- peut etre executé a partir de Visual Studio (outil externe)
- necessite peu de modification du code source pour etre implenté.
(ai passé seulement 10min pour rendre SW compatible)
Tout ceci est totalement fonctionnel, néanmoins, on peut surement améliorer le systeme (par ex: avoir un nom d'exe different en entrée et en sortie). Mais rappel: je n'ai passé que 16h dessus LOL...
Voila. Selon le nombre de personnes interessées je pourrais faire une aide collective, sinon ben je le send par mail et je réponds aux questions par mail...
Enfin, vous l'aurez compris, pour les programmes qui n'ont pas de fichiers externes XFiles2One est tout simplement inutile! De meme, le probleme reste dans le cas d'un Exe principal et d'exe additionnel(s), (ex: Sonic ), car je ne vois pas comment executer l'exe additionnel s'il se trouve en fin d'un autre exe...
Voilou voilou.
J'attends vos remarques
Hors ligne
enfin un outil qui permet de faire ca !!!
franchement j'y avais pensé ya qqs temps mais trop la flemme de le réaliser...
tu l'as fait ac koi ?
sinon je trouve que l'interface est tres bien realisee.
et puis ck'est vraiment bien c'est la generation automatique du .h
send le par mail: mastermage@graph100.com
Hors ligne
Merci
C'est fait avec Visual Studio .Net
Hors ligne
Ohoh ca risque d'être bien pratique ca!! Bonne idée!
Si j'ai bien compris ca rassemble tous les fichiers en un seul les uns à la suite des autres? Mais comment fait-on pour manipuler et ouvrir les fichiers externes: toujours avec fopen, fread etc?
En tout cas bravo!!!
Bon maintenant fais nous un chargeur de dll s'il te plait :P
Lol je plaisante bien sûr
Hors ligne
ah tu l'as fait en C#, en VB.NET ou en C++ ? (perso j'uttilise pas VS.NET mais SharpDevelop)
Julien -> oui et fait suffit de faire un seek avec la valeur contenue dans le .h pour avoir son fichier
Hors ligne
ok
Je suppose qu'il l'a fait en C++, tout comme SWEdit
Hmm à la réflexion c vrai que c bien pratique mais ca ne sert à rien pour les fichiers utilisés "dynamiquement"... Dans sonic les maps sont "libres" en qq sorte, on peut rajouter ou enlever les fichiers smp à son gré (tout le monde pourra en créer de nouveaux avec un éditeur), tout comme les stx et les sbg si on veut créer des nouveaux décors... en fait à part le deuxieme exe et les sprites des objets, je vois pas trop ce que je pourrais attacher à l'exe principal
Donc en tout cas ca reste une excellente idée, mais c plutot limité pour les progs n'ayant pas un nombre "fini" de fichiers externes...
Hors ligne
ben dans ce cas tu mets les fichiers indispensables/de base dans l'exe et tu laisse les autres fichiers a l'exterieur...
tu sais ac une tite classe C++ pr fairel'abstraction (oui oui je me mets enfin serieusement a la poo :mrgreen: ) et c parti
Hors ligne
C'est effectivement fait en C++...
Sinon, je pensais a un truc, c'est que les fichiers n'ont pas besoin d'etre mis a la fin de l'exe. En quelque sorte, il suffit de mettre un fichier quelconque (ex:IMAGE.BMP) a la place de l'exe (ds: EXE filename) et le prog va mettre les fichiers de la liste a la suite de IMAGE.BMP... Disons donc, que ca pourrait servir a regrouper plusieurs fichiers genre la map, ses sprites, ses images, ses textes etc... comme ca pour creer un niveau de Sonic il suffirait d'envoyer un seul fichier par niveau. Enfin, ca c'est toi qui voit Julien En tout cas, Il faudra trouver quelque chose car ca risque d'etre un probleme si Sonic est livré avec 10 niveaux...
Sinon, au niveau du code source, il suffit de remplacer les read() ou fread() par un seek() ou lseek() comme l'avait tres bien dit Mastermage.
Comme je l'avais dit, je sais pas si ca servira a bcp de monde, comme souvent, j'ai fait ce prog avant tout pour moi
En fait, ce systeme me permet d'eliminer le probleme des dossiers : l'exe peut se trouver n'importe ou, ca fonctionne
Hors ligne
Hmmmnon je préfère garder mon systeme, et rendre les dossiers utilisables (càd qu'ils seront aussi inspectés lors de la recherche des fichiers; ca fonctionne deja lorsque les fichiers sont dispersés un peu partout, mais restent directement à la racine des lecteurs)... Car si plusieurs maps utilisent le meme jeu de textures par exemple (ce qui est deja le cas actuellement avec les 2 maps dispos), ca prendra chaque fois de la place en mémoire...
Enfin, j'ai (malheureusement?) encore le temps d'y réfléchir...
Sinon bah le principal c que ca soit utile pour SW, mais si c utile pour qqn d'autre, tant mieux
mastermage -> Je sais pas si les classes abstraites seront très utiles pour ca
Hors ligne
Vi c vrai que dans le cas de Sonic c pas tres pratique surtout que le chargement ne se fait que ponctuellement vu que les maps sont grandes... contrairement a SW
Hors ligne
en tout cas félicitations pour se prog !!
encore une fois leadfiner se montre comme l'un des programmeurs les plus entreprenants de ce forum et tout l'honneur lui revient :bravo2:
Hors ligne
et ben schuis content d'avoir donné des idées a certains lol
bravo leadfiner c du bon boulot !!!!!!!!!! ca c niquel pu de fichiers qui trainent !!!!
mon mail : tiri500@hotmail.com
j veux tester ca !!!!!
Hors ligne
ben j commence (g fait mon premier prog en C ya pas longtemps .... et ca affiche l'heure et la date en meme temps)
bref c nase mais ce n'est qu'un debut lol
je suis en train de m'habituer a la syntaxe !!!!!!!!!!
et pk c pas la peine ?????? meme si tu c pas prog tu peut tjs compiler ????????? non
meme si je suis d'accord avec toi ca ne servirai pas a grd chose ...........
Hors ligne
Ce logiciel sert à réunir plusieurs fichiers externes dans un meme exe...
Et c'est pas quand on vient de commencer la prog qu'on est habitué à les manipuler :?
Donc Ca te sera peut-etre utile en effet, mais peut-etre pas tout de suite non plus
Hors ligne
(ouais sauf que ca peut servir a trouver des bugs ...............)
Je n'ajouterai ren de plus !
Hors ligne
Coul ça! c sûr ke je v bientôt l'utiliser car mes install deviennent TRES gros !!
Hors ligne
quelqu'un l'a se programme ou pas ?
Hors ligne