.Pak
Publié : sam. 21/août/2004 1:28

Code : Tout sélectionner
CreatePack("Zik.pak")
AddPackFile("Genesia.mp3",1)
ClosePack()
Code : Tout sélectionner
CreatePack("Zik.pak")
AddPackFile("Genesia.mp3",1)
ClosePack()
Code : Tout sélectionner
#FicherCourant = 1
;========================================================================================================
;=======================================================================================================
Procedure.l Compresse(NomFichier$)
Resultat = 1
If CreatePack(NomFichier$) ; crée le le fichier qui va être compressé
; tu peux choisir un ou plusieur fichiers à compresser
packers$ = OpenFileRequester("Choisissez le(s) fichiers a compresser", "tout", "*.*", 0, #PB_Requester_MultiSelection)
If packers$ ; teste si la chaine existe
Repeat
Fichier$ = GetFilePart(packers$) ; récupère seulement le nom de fichier
AddPackMemory(@Fichier$, Len(Fichier$) + 1) ; ajoute le nom de fichier, la zone mémoire étant la chaine Fichier$
; on ajoute 1 à len(Fichier$) pour écrire le 0 qui est le caractère de fin de chaine
AddPackFile(packers$, 9) ; rajoute la selection et niveau de compression 9
packers$ = NextSelectedFileName() ; ajoute le fichier compressé
Until packers$ = "" ; on reboucle tant qu'il y a des fichiers compressés
ClosePack() ; ferme le pack
Else
MessageRequester("Information", "Aucun fichier n'a été sélectionné", #MB_ICONERROR)
Resultat = 0
EndIf
Else
Resultat = 0
EndIf
ProcedureReturn Resultat
EndProcedure
;=======================================================================================================
;=======================================================================================================
Procedure Decompresse(FichierCompresser$)
If OpenPack(FichierCompresser$)
; MessageRequester("Ok","OpenPack a réussi",16) ; on affiche que l'ouverture du fichier compressé a réussie
Repertoire.s = PathRequester("Ou décompresser les fichiers ?", "")
NomFichier.s = Space(256) ; crée la variable chaine qui récupèrera le nom de fichier courant
AdresseMemoire = NextPackFile() ; On récupère le premier élément compressé, c'est-à-dire le nom du fichier
While AdresseMemoire ; on débute la boucle
; Debug("AdresseMemoire") ; la variable utilisée AdresseMemoire est partagé, tu doit utiliser
; Debug(AdresseMemoire ) ; la même pour récupérer le nom de fichier et le fichier lui-même
; Debug("")
NomFichier = PeekS(AdresseMemoire) ; récupère le nom de fichier en situé en mémoire
; Debug(NomFichier)
AdresseMemoire = NextPackFile() ; récupère l'adresse du fichier à décompresser
Taille = PackFileSize() ; récupère la taille du fichier à décompresser
CreateFile(#FicherCourant, Repertoire + NomFichier) ; on crée le fichier sur le disque avec le répertoire sélectionné
WriteData(AdresseMemoire, Taille ) ; on écrit le contenu du fichier
CloseFile(#FicherCourant) ; on ferme le fichier
AdresseMemoire = NextPackFile() ; on continue l'opération tant que adresseMemoire est différent de 0
Wend
ClosePack() ; ferme le pack
Else
MessageRequester("Erreur", "OpenPack a échoué", #MB_ICONERROR)
EndIf
EndProcedure
;===========================================================================================================
;===========================================================================================================