Page 1 sur 1
[Résolu] CompressMemory et UnCompressMemory
Publié : jeu. 01/mai/2014 13:11
par Micoute
Bonjour à tous,
est-ce que quelqu'un pourrait m'expliquer ces deux fonctions, car ce n'est guerre documenté.
Je vous remercie de tout cœur !
Re: CompressMemory et UnCompressMemory
Publié : jeu. 01/mai/2014 18:51
par falsam
Bien que je sois peu utilisateur de ces deux instructions, je me lance avec un code commenté
On va stocker un string en mémoire (ok ça n'a pas d'interet), le compresser et le décompresser en suivant l'évolution de la taille réservée en mémoire.
Code : Tout sélectionner
UseLZMAPacker()
String$ ="Exemple d'un string en mémoire "
*InPut = AllocateMemory(5000)
*OutPut = AllocateMemory(5000)
;Ecrit la chaîne de caractères à l'adresse *InPut
PokeS(*InPut, String$)
Debug "Taille avant compression " + MemorySize(*Input)
;Compresse le contenu de la mémoire tampon *InPut dans une mémoire tampon *OutPut.
Size = CompressMemory(*InPut, MemorySize(*InPut), *OutPut, MemorySize(*OutPut), #PB_PackerPlugin_LZMA)
Debug "Taille aprés compression " + Size
;Comment est compressée string$
ShowMemoryViewer(*OutPut, Size)
;Décompresse le contenu de la mémoire tampon *OutPut dans la mémoire tampon *InPut.
Size = UncompressMemory(*OutPut, MemorySize(*OutPut), *InPut, MemorySize(*InPut), #PB_PackerPlugin_LZMA)
Debug "Taille aprés décompression "+ Size
;Decommente l'instruction qui suit pour voir le résultat aprés décompression
;ShowMemoryViewer(*Input, Size)
FreeMemory(*InPut)
FreeMemory(*Output)
Re: CompressMemory et UnCompressMemory
Publié : jeu. 01/mai/2014 19:14
par Micoute
Merci beaucoup falsam, car ces instructions sont très mal documentées et comme j'ai des anciens codes qui fonctionnent avec PackMemory() et UnPackMemory, comme ça, ça va me permettre de les remettre à jour, alors merci encore.