PackerCallback()

Syntaxe

Resultat = PackerCallback(@Callback())
Description
Définir une fonction de rappel pour surveiller ou interrompre la compression pour CompressMemory(), AddPackFile() et AddPackMemory().

Arguments

@Callback() Adresse de la fonction de rappel. Elle doit avoir la forme suivante :
  Procedure Callback(EnCours.q, Total.q)
    ;
    ; Renvoie #True pour continuer la compression, ou #False pour abandonner.
    ;
    ProcedureReturn Resultat
  EndProcedure

Valeur de retour

Aucune.

Remarques

La fonction de rappel sera appelée à intervalles réguliers pendant le processus de compression.

Exemple

  UseZipPacker()
   
  ; La CallBack sera appelée à intervalles réguliers pour afficher ou interrompre la compression. 
  ; Elle doit correspondre à la déclaration suivante.
  ;
  Procedure Callback(EnCours.q, Total.q)
    Debug "Progression: " + EnCours + " octets / "+ Total + " octet"
    
    ProcedureReturn #True ; Renvoie #True pour continuer la compression, ou #False pour abandonner.
  EndProcedure
    
  ; Installer le rappel pour toutes les futures compressions de packer 
  PackerCallback(@Callback())
  
  ; Allouer 50 Go de mémoire pour la compression
  *Tampon = AllocateMemory(50*1024*1024, #PB_Memory_NoClear)
  
  ; Le tampon de sortie est un peu plus grand que la source, juste au cas où
  *Sortie = AllocateMemory(51*1024*1024, #PB_Memory_NoClear)

  Taille_compressee = CompressMemory(*Tampon, MemorySize(*Tampon), *Sortie, MemorySize(*Sortie))

  Debug "Longueur compressée: " + Taille_compressee + " octet"

Voir aussi

CompressMemory(), AddPackFile(), AddPackMemory()

OS Supportés

Tous

<- PackEntryType() - Packer Index - UncompressMemory() ->