Unpackmemory (resolu)

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Unpackmemory (resolu)

Message par kernadec »

bonsoir
je suis passer à coté de l'information au sujet de la commande : "UnpackMemory()"
comment remplacer cette commande sous PB520.
Alors qu'elle existait dans la version PB4.51
exemple de la doc PB451:

UnpackMemory()

Syntaxe

Resultat = UnpackMemory(MemoireSource, MemoireDestination)
Description

Décompresse une zone mémoire préalablement compressée (avec PackMemory()) vers la zone MemoireDestination. Si le 'Résultat' est 0, alors les données ne peuvent pas être décompressées (format invalide). Sinon la taille des données décompressées est renvoyée dans 'Resultat'.

UnpackMemory() attend des données correctement compressées, car la fonction n'effectue aucun contrôle (pour des raisons de performances). Si vous décompressez des données qui ne sont pas dignes de confiance, vous devriez avant tout les contrôler avec par exemple MD5().

Note : La décompression est réellement très rapide, contrairement à la compression.


Cordialement
Dernière modification par kernadec le jeu. 24/oct./2013 19:51, modifié 1 fois.
stombretrooper
Messages : 117
Inscription : dim. 21/déc./2008 18:39

Re: Unpackmemory

Message par stombretrooper »

Bonsoir,

Je penses, que tu devrais regarder la fonction "UncompressMemory" :
UncompressMemory(*Buffer, Size, *Output, OutputSize [, PluginID])

Sur le forum anglais, j'ai trouvé ça :
http://www.purebasic.fr/english/viewtop ... 13&t=52441
Qui correspond à ton problème.

A+
http://www.purebasicstreet.com/ - Site dédié à purebasic.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Unpackmemory

Message par falsam »

A priori ma réponse est la même que le poste cité.

Code : Tout sélectionner

UseLZMAPacker()

String$ ="Compress uncompress in memory"

*InPut  = AllocateMemory(5000)
*OutPut = AllocateMemory(5000)

PokeS(*InPut, String$)
Debug MemorySize(*Input)

Size =  CompressMemory(*InPut, 5000, *OutPut, 5000, #PB_PackerPlugin_LZMA) 
Debug Size
ShowMemoryViewer(*OutPut, Size)
                 
Size = UncompressMemory(*OutPut, 5000, *InPut, 5000, #PB_PackerPlugin_LZMA)
Debug Size
;ShowMemoryViewer(*Input, Size)

FreeMemory(*InPut)
FreeMemory(*Output)
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
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Unpackmemory

Message par kernadec »

bonjour
Merci stombretrooper & falsam :D
j'avais un code qui fonctionner plus :(

Dans l'historique de la doc, il pourrait y avoir une fonction recherche pour un mot :?
Il reste la solution est de copié tout le texte dans le notepad pour lancer une recherche.

ET là..... je n'ai pas reçu d'infos sur la suppression de la commande UnpackMemory()
peut être ajouter ce changement dans l'historique de la doc

En plus j'ai complétement oublié de chercher sur le forum anglais :?

Cordialement
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Unpackmemory

Message par kernadec »

bonsoir
remerciement à Mickael Vogel
Une autre solution a ce problème ici :http://www.purebasic.fr/english/viewtop ... 12&t=54599
Avec la procédure de " Mickael Vogel " mise en début des codes qui utilisent la commande UnpackMemory
l'ancien nom de la commande fonctionne à nouveau :mrgreen:

Cordialement

Code : Tout sélectionner

Procedure.i UnpackMemory (Source, Destination) 
  UseJCALG1Packer() 
  ProcedureReturn UncompressMemory(Source, 0, Destination, 0, #PB_PackerPlugin_JCALG1) 
EndProcedure
Répondre