Et allez hop ! *.ini, *.dat, *.bin, etc... tous dans le *.exe

Description

Cette démo explique comment une application peut stocker, lire, supprimer n'importe quelles données dans son propre fichier .exe.

A titre d'exemple, nous allons rendre notre application capable de se comporter de la même façon que si elle disposait d'un fichier .ini alors qu'elle ne se composera que d'un simple et seul fichier .exe (c'est plus clean et pratique, non ?).
Afin de faciliter la compréhension de cette méthode, la démo est minimaliste et ne fera que conserver la taille et la position d'une Form à sa fermeture afin de les restituer lors d'un prochain lancement. Et elle fera de même avec le contenu d'un mémo afin de démontrer l'utilisation de données de taille variable.

Il y a beaucoup de possibilités à explorer en adaptant la méthode présentée ici, car sur ce principe on pourra sauvegarder et lire toute sorte de données dans un fichier .exe en runtime ( et même plus ;).

Pour comprendre cette technique, il ne faut que quelques notions de base sur les fichiers binaires et l'objet TStream (il y a plusieurs exemples sur ce site).
Le principe de base est très simple. Il suffit d'ajouter nos données à la suite du fichier exe, sur le DD ( 'fallait y penser ! :p ).
La technique est un peu plus compliquée. Une application ne peut pas modifier son propre fichier .exe car celui-ci est en cours d'utilisation. On est donc obligé d'avoir recours à une petite gymnastique informatique.

Une dernière remarque :
Votre .exe, sur le disque dur, sera bien sûr plus lourd. Cependant l'occupation de la mémoire lors du lancement restera identique à celle d'un .exe classique. Cette technique ne consomme donc pas plus de ressources qu'un .exe classique.

Fait en D7
Testé sous XP

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.