[Func] Serialize / Unserialize
Posté : mar. 16 août 2011 14:38
Bonjour à tous
Quelques fois, vous pouvez avoir besoin de sauvegarder vos données dans des fichiers de configuration/sauvegarde. Seulement voilà, si il est simple d’écrire un texte, il peut etre plus compliqué de sauvegarder un tableau, un booleen, un Handle, etc...
Il faut en effet passer par des boucles fors pour les premiers, des nombres (0 et 1) pour les 2eme, encore plus difficile pour les derniers.
Pire encore quand on travaille sur Internet. Comment passer un tableau en paramètre à un site web par méthode GET?
En effet, un simple http://autoitscript.fr/?variable=bonjour marche, mais si ma variable est un tableau?Rien ne va plus
Alors le principe de Serializer apparait, le principe est très simple : Tout se stocke d'une certaine manière dans un format texte. Comme un sorte de Cryptage que l'on peut chiffrer/dechiffrer a volonté.
Pour faire plus simple, on va transformer par exemple une array de cette forme :
en un texte ressemblant à ceci :
Ca peut vous paraitre compliqué/inutile, mais croyez moi vous allez vite vous rendre compte de la puissance de cet outil.
Exemple d'utilisation :
Quelques fois, vous pouvez avoir besoin de sauvegarder vos données dans des fichiers de configuration/sauvegarde. Seulement voilà, si il est simple d’écrire un texte, il peut etre plus compliqué de sauvegarder un tableau, un booleen, un Handle, etc...
Il faut en effet passer par des boucles fors pour les premiers, des nombres (0 et 1) pour les 2eme, encore plus difficile pour les derniers.
Pire encore quand on travaille sur Internet. Comment passer un tableau en paramètre à un site web par méthode GET?
En effet, un simple http://autoitscript.fr/?variable=bonjour marche, mais si ma variable est un tableau?Rien ne va plus
Alors le principe de Serializer apparait, le principe est très simple : Tout se stocke d'une certaine manière dans un format texte. Comme un sorte de Cryptage que l'on peut chiffrer/dechiffrer a volonté.
Pour faire plus simple, on va transformer par exemple une array de cette forme :
Code : Tout sélectionner
Dim $a[4] = [TRUE, "Bonjour", 456, "Louis"]
Code : Tout sélectionner
[30=4-?1=t$7=Bonjour&3=456$5=Louis
Exemple d'utilisation :
Code : Tout sélectionner
#include <Array.au3>
Dim $a1[4] = [TRUE, FALSE, "Richard", 25]
Dim $a2[4] = [TRUE, $a1, "Richard", WinExists("firefox")]
Dim $a[4] = [TRUE, $a2, 456, "Louis"]
$b = _serialize($a)
MsgBox(0,"",$b)
$c = _unserialize($b)
_ArrayDisplay($c)
_ArrayDisplay($c[1])