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 !
[Résolu] CompressMemory et UnCompressMemory
[Résolu] CompressMemory et UnCompressMemory
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 !
Un homme doit être poli, mais il doit aussi être libre !
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: CompressMemory et UnCompressMemory
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.

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%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: CompressMemory et UnCompressMemory
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 !
Un homme doit être poli, mais il doit aussi être libre !