[UDF] SavedVariable.au3: des variables sauvegardé

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Répondre
Avatar du membre
poke123
Niveau 2
Niveau 2
Messages : 26
Enregistré le : mer. 24 mars 2010 14:22
Status : Hors ligne

[UDF] SavedVariable.au3: des variables sauvegardé

#1

Message par poke123 »

salut tout le monde! voici un petit UDF (basé sur marshal.au3) qui propose de créer des variables sauvegardé c'est a dire qui restent les même entre deux lancement avec la valeur par défaut et le toutim, vous avez un exemple d'utilisation vers la fin

attention, les variables sont typé et ont une taille défini, pour le type, voir les dllstruct et pour la taille utilisez sizeof
les savedvariables sont toujours créé dans le global scope
vous pouvez y stocker des données non autorisé puisque c'est utilisable comme des variables normal mais ne le faites pas sous peine de plantage ou bien de sauvegarde corrompu

utilisez saveall() dans la case (ou la fonction) associé à $GUI_EVENT_CLOSE pour sauvegarder à chaque fermeture

les variables sont automatiquement récupéré ou bien initialisé à la valeur par défaut voulue (si le fichier de sauvegarde n'existe pas)

pensez à utiliser les wide char (wchar) si vous voulez stocker du texte contenant des accents par exemple (au prix d'un doublement de la taille en mémoire donc si vous êtes sûr utilisez les char plus léger)
de même pour les nombre, les double sont souvent superflu, préférez le float, pour les petit entier un byte est souvent suffisant (pour stocker l'age d'une personne qui ne dépasse pas 255 que je sache) voir un short dans certain cas, le int et le int64 sont plus lourd et rarement vraiment utiliser à leur plein potentiel laissant des zéros inutile dans la sauvegarde

le but de tout ça est d'économiser de la place sur le disque sans risquer les problèmes, si votre script compte 100 personnes sauvegardé par leur age avec un int, et leur nom avec un wchar[100] votre fichier prend 20ko de mémoire contre 5ko si vous préférez l'utilisation de wchar[25] et de byte en sachant que les personnes ne peuvent avoir plus de 255 ans (ou -4 ans) et que les prénom de 100 caractère ben heu c'est pas vraiment courant (déjà que 25 c'est beaucoup)

ha et enfin j'y pense, autoit stock ses booléens sur 8 bit donc si vous en avez un grand nombre, faites des manip' vous même pour en stocker 8 sur un byte ce qui est plus économe (j'entend par là faire un truc type $bin = 01100111b et utiliser bitand($bin, 01000000b) pour tester le second bit par exemple)
► Afficher le textesavedvariable.au3
Répondre