[Résolu] CompressMemory et UnCompressMemory

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

[Résolu] CompressMemory et UnCompressMemory

Message 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 !
Dernière modification par Micoute le jeu. 01/mai/2014 19:15, modifié 1 fois.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: CompressMemory et UnCompressMemory

Message par falsam »

Bien que je sois peu utilisateur de ces deux instructions, je me lance avec un code commenté :mrgreen:

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)
Dernière modification par falsam le jeu. 01/mai/2014 19:48, modifié 1 fois.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: CompressMemory et UnCompressMemory

Message 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.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Répondre