Je suis en train de développer un programme, et je voudrais avoir un exe + un gros fichier 'DATA.RES' qui contient toutes les ressources de mon prog (images, sons, videos, ...) et qui est une archive faite avec la lib 'Packer'
Mon fichier packer est ok : j'arrive parfaitement à décompresser les fichiers sur le discdur, mais je ne trouve pas la méthode pour extraire en mémoire un seul fichier et l'utiliser dans mon code principale comme une ressources classique.
Voici le code exemple qui doit normalement récupérer un fichier précis d'une archive Packer et de la "catcher" pour l'utiliser n'importe où dans le prog :
Code : Tout sélectionner
Enumeration
#WIN
#IMG
#G_IMG
#TXT
EndEnumeration
Procedure.l ExtractFile(File$)
NomPack$ = "data.res"
If OpenPack(NomPack$)
Repeat
AdrMem = NextPackFile()
TailleFich = PackFileSize()
If TailleFich = -1 : Break : EndIf
NomFich.s = Space(TailleFich)
NomFich = PeekS(AdrMem, TailleFich)
Until NomFich = File$
ProcedureReturn AdrMem
Else
MessageRequester("Erreur", "Impossible d'ouvrir le fichier Pack", #PB_MessageRequester_Ok)
EndIf
EndProcedure
*AdrMem = ExtractFile("mur.bmp")
If *AdrMem = 0
Debug "memoire nulle"
End
EndIf
CatchImage(#IMG, *AdrMem)
If OpenWindow(#WIN,0,0,300,250, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "image")
If CreateGadgetList(WindowID(0))
TextGadget(#TXT, 0,0,80,50,"Nom du fichier : "+PeekS(*AdrMem))
ImageGadget(#G_IMG,0,50,300,300,UseImage(#IMG))
Else
Debug "erreur de gadget"
EndIf
Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
Else
Debug "erreur de fenetre"
EndIf
End

Pour ouvrir une archive c'est OpenPack(NomFichPack) -> ok
pour parcourir et lire chaque fichier contenu dans l'archive c'est NextPackFile() -> ok
pour lire la taille du fichier courant c'est PackFileSize() -> parfait
Mais je ne comprends pas comment lire simplement le nom du fichier pour savoir si c'est celui que je veux extraire. Il n'existe pas de commande du type PackFileName()
Bref je suis perdu

Qq'un peut-il m'aider svp ?