compression decompression

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
gadjet35
Messages : 190
Inscription : ven. 21/oct./2005 7:49
Localisation : Quelque part en france !

compression decompression

Message par gadjet35 »

bonjour je viens de programmer un programme capable de compresser puis de decompresser un fichier.
la compression marche un peu près...
mais la decompression ne marche pas du tout...
quelqu'un peut m'aider?
il y a 2 codes:
1 code

Code : Tout sélectionner

;- Window Constants
;
Enumeration
  #Window_0
EndEnumeration

;- MenuBar Constants
;
Enumeration
  #MenuBar_0
EndEnumeration

Enumeration
  #MENU_1
  #MENU_2
  #MENU_3
EndEnumeration

;- Gadget Constants
;
Enumeration
  #Frame3D_0
  #Frame3D_1
  #Frame3D_2
  #Frame3D_3
  #ExplorerTree_0
  #Button_0
  #Button_1
  #Frame3D_4
  #String_0
  #Radio_1
  #Radio_2
  #Radio_3
  #Radio_4
  #Radio_5
  #String_1
  #Radio_6
  #Combo_0
  #Radio_7
  #Button_2
  #Text_0
  #Text_1
  #Text_2
  #Text_3
  #Text_4
  #Text_5
  #Text_6
  #Text_7
  #String_2
  #String_3
  #Text_24
  #Text_25
  #Button_3
  #Radio_8
  #Radio_9
  #Text_26
  #Text_27
  #Text_28
EndEnumeration


Procedure Open_Window_0()
  If OpenWindow(#Window_0, 0, 0, 1019, 704,  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Compression Fichier")
    If CreateMenu(#MenuBar_0, WindowID())
      MenuTitle("Fichier")
      MenuItem(#MENU_1, "Ouvrir")
      MenuItem(#MENU_3, "INFO")
      MenuBar()
      MenuItem(#MENU_2, "Quitter")
      EndIf

      If CreateGadgetList(WindowID())
        Frame3DGadget(#Frame3D_0, 30, 180, 220, 310, "AJOUTER")
        Frame3DGadget(#Frame3D_1, 280, 20, 480, 300, "COMPRESSER")
        Frame3DGadget(#Frame3D_2, 280, 330, 480, 180, "DECOMPRESSER")
        Frame3DGadget(#Frame3D_3, 780, 90, 210, 520, "EXPLORATEUR")
        ExplorerTreeGadget(#ExplorerTree_0, 800, 130, 170, 410, "")
        ButtonGadget(#Button_0, 830, 560, 120, 40, "Selectionner")
        ButtonGadget(#Button_1, 70, 220, 120, 50, "Lister")
        Frame3DGadget(#Frame3D_4, 60, 310, 150, 150, "FICHIERS")
        StringGadget(#String_0, 330, 40, 210, 20, "")
        OptionGadget(#Radio_1, 310, 200, 20, 20, "")
        OptionGadget(#Radio_2, 310, 240, 20, 20, "")
        OptionGadget(#Radio_3, 520, 200, 20, 20, "")
        OptionGadget(#Radio_4, 520, 240, 30, 30, "")
        OptionGadget(#Radio_5, 520, 290, 20, 20, "")
        StringGadget(#String_1, 350, 130, 210, 20, "")
        OptionGadget(#Radio_6, 550, 40, 30, 30, "")
        ComboBoxGadget(#Combo_0, 330, 70, 210, 300)
        OptionGadget(#Radio_7, 550, 70, 30, 20, "")
        ButtonGadget(#Button_2, 620, 70, 110, 50, "Compresser", #PB_Button_Default)
        TextGadget(#Text_0, 350, 200, 120, 20, "Suprimer l'ancien fichier")
        TextGadget(#Text_1, 350, 240, 160, 30, "Ne pas suprimer l'ancien fichier")
        TextGadget(#Text_2, 560, 190, 180, 30, "Compression rapide (mauvaise qualité)")
        TextGadget(#Text_3, 560, 240, 180, 30, "Compression normale (bonne qualité)")
        TextGadget(#Text_4, 560, 280, 180, 30, "Compression lente (très bonne qualité)")
        TextGadget(#Text_5, 290, 40, 30, 20, "DE :")
        TextGadget(#Text_6, 290, 70, 30, 20, "DE :")
        TextGadget(#Text_7, 290, 130, 30, 20, "À :")
        StringGadget(#String_2, 330, 360, 190, 20, "")
        StringGadget(#String_3, 330, 390, 190, 20, "")
        TextGadget(#Text_24, 290, 360, 30, 20, "DE :")
        TextGadget(#Text_25, 290, 390, 30, 20, "À :")
        ButtonGadget(#Button_3, 580, 370, 120, 50, "Decompresser", #PB_Button_Default)
        OptionGadget(#Radio_8, 310, 450, 30, 30, "")
        OptionGadget(#Radio_9, 515, 450, 30, 30, "")
        TextGadget(#Text_26, 350, 460, 190, 30, "Suprimer l'ancien fichier")
        TextGadget(#Text_27, 550, 460, 190, 30, "Ne pas suprimer l'ancien fichier")
        TextGadget(#Text_28, 270, 560, 490, 40, "Atention la compression et decompression vite fait ou mal fait peut être néfaste sur votre ordinateur !")
      EndIf
    EndIf
EndProcedure

pointeur = 0

open_window_0()

 Repeat
  Select WaitWindowEvent()
   Case #PB_EventMenu
    Select EventMenuID()
     Case #menu_1
      fichier$ = OpenFileRequester("ouvrir...","","tous les fichiers|*.*",1)
      OpenFile(pointeur,fichier$)
      TextGadget(40 + pointeur,90,330 + (pointeur * 10),100,50,"fichier :"+" "+Str(pointeur))
      AddGadgetItem(#combo_0,pointeur,"fichier"+"  "+fichier$)
      pointeur = pointeur + 1
     Case #menu_3
      MessageRequester("info","Compression Fichier v3.4"+Chr(13)+Chr(13)+"auteur :"+Chr(13)+"sven thommet"+Chr(13)+"1 rue, Maurice de taste"+Chr(13)+"57520    Grosbliederstroff")     
     Case #menu_2
      End
    EndSelect
   Case #PB_EventGadget
    Select EventGadgetID() 
     Case #button_0
      destination$ = GetGadgetText(#explorertree_0)
      SetGadgetText(#String_1,destination$)
      SetGadgetText(#String_3,destination$)
      pointeur = pointeur + 1  
     Case #button_1
      fichier$ = OpenFileRequester("ouvrir...","","tous les fichiers|*.*",1)
      OpenFile(pointeur,fichier$)
      TextGadget(40 + pointeur,80,330 + (pointeur * 25),100,15,"fichier :"+" "+Str(pointeur))
      AddGadgetItem(#combo_0,pointeur,"fichier"+"  "+fichier$)
      pointeur = pointeur + 1   
     Case #button_2
      If #radio_6
       compress_de$ = GetGadgetText(#String_0)
      EndIf
      If #radio_7
       combo$ = GetGadgetText(#combo_0)
       compress_de$ = Mid(combo$,9,10)
      EndIf
       compress_a$ = GetGadgetText(#String_1)
        If #radio_1 = 1
         DeleteFile(compress_de$)
        EndIf
        If #radio_3 = 1
         level = 1
        EndIf
        If #radio_4 = 1
         level = 5
        EndIf
        If #radio_5 = 1
         level = 9
        EndIf
       PackMemory(compress_de$,compress_a$,1000,level)
     Case #button_3
      decomp_de$ = GetGadgetText(#String_2)
      decomp_a$ = GetGadgetText(#String_3)
       If #radio_8
        DeleteFile(decomp_de$)
       EndIf
      UnpackMemory(decomp_de$,decomp_a$)
    EndSelect
   Case #PB_EventCloseWindow
    quit = 1
  EndSelect
 Until quit = 1
2 code

Code : Tout sélectionner

;- Window Constants
;
Enumeration
  #Window_0
EndEnumeration

;- MenuBar Constants
;
Enumeration
  #MenuBar_0
EndEnumeration

Enumeration
  #MENU_1
  #MENU_2
  #MENU_3
EndEnumeration

;- Gadget Constants
;
Enumeration
  #Frame3D_0
  #Frame3D_1
  #Frame3D_2
  #Frame3D_3
  #ExplorerTree_0
  #Button_0
  #Button_1
  #Frame3D_4
  #String_0
  #Radio_1
  #Radio_2
  #Radio_3
  #Radio_4
  #Radio_5
  #String_1
  #Radio_6
  #Combo_0
  #Radio_7
  #Button_2
  #Text_0
  #Text_1
  #Text_2
  #Text_3
  #Text_4
  #Text_5
  #Text_6
  #Text_7
  #String_2
  #String_3
  #Text_24
  #Text_25
  #Button_3
  #Radio_8
  #Radio_9
  #Text_26
  #Text_27
  #Text_28
EndEnumeration


Procedure Open_Window_0()
  If OpenWindow(#Window_0, 0, 0, 1019, 704,  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Compression Fichier")
    If CreateMenu(#MenuBar_0, WindowID())
      MenuTitle("Fichier")
      MenuItem(#MENU_1, "Ouvrir")
      MenuItem(#MENU_3, "INFO")
      MenuBar()
      MenuItem(#MENU_2, "Quitter")
      EndIf

      If CreateGadgetList(WindowID())
        Frame3DGadget(#Frame3D_0, 30, 180, 220, 310, "AJOUTER")
        Frame3DGadget(#Frame3D_1, 280, 20, 480, 300, "COMPRESSER")
        Frame3DGadget(#Frame3D_2, 280, 330, 480, 180, "DECOMPRESSER")
        Frame3DGadget(#Frame3D_3, 780, 90, 210, 520, "EXPLORATEUR")
        ExplorerTreeGadget(#ExplorerTree_0, 800, 130, 170, 410, "")
        ButtonGadget(#Button_0, 830, 560, 120, 40, "Selectionner")
        ButtonGadget(#Button_1, 70, 220, 120, 50, "Lister")
        Frame3DGadget(#Frame3D_4, 60, 310, 150, 150, "FICHIERS")
        StringGadget(#String_0, 330, 40, 210, 20, "")
        OptionGadget(#Radio_1, 310, 200, 20, 20, "")
        OptionGadget(#Radio_2, 310, 240, 20, 20, "")
        OptionGadget(#Radio_3, 520, 200, 20, 20, "")
        OptionGadget(#Radio_4, 520, 240, 30, 30, "")
        OptionGadget(#Radio_5, 520, 290, 20, 20, "")
        StringGadget(#String_1, 350, 130, 210, 20, "")
        OptionGadget(#Radio_6, 550, 40, 30, 30, "")
        ComboBoxGadget(#Combo_0, 330, 70, 210, 300)
        OptionGadget(#Radio_7, 550, 70, 30, 20, "")
        ButtonGadget(#Button_2, 620, 70, 110, 50, "Compresser", #PB_Button_Default)
        TextGadget(#Text_0, 350, 200, 120, 20, "Suprimer l'ancien fichier")
        TextGadget(#Text_1, 350, 240, 160, 30, "Ne pas suprimer l'ancien fichier")
        TextGadget(#Text_2, 560, 190, 180, 30, "Compression rapide (mauvaise qualité)")
        TextGadget(#Text_3, 560, 240, 180, 30, "Compression normale (bonne qualité)")
        TextGadget(#Text_4, 560, 280, 180, 30, "Compression lente (très bonne qualité)")
        TextGadget(#Text_5, 290, 40, 30, 20, "DE :")
        TextGadget(#Text_6, 290, 70, 30, 20, "DE :")
        TextGadget(#Text_7, 290, 130, 30, 20, "À :")
        StringGadget(#String_2, 330, 360, 190, 20, "")
        StringGadget(#String_3, 330, 390, 190, 20, "")
        TextGadget(#Text_24, 290, 360, 30, 20, "DE :")
        TextGadget(#Text_25, 290, 390, 30, 20, "À :")
        ButtonGadget(#Button_3, 580, 370, 120, 50, "Decompresser", #PB_Button_Default)
        OptionGadget(#Radio_8, 310, 450, 30, 30, "")
        OptionGadget(#Radio_9, 515, 450, 30, 30, "")
        TextGadget(#Text_26, 350, 460, 190, 30, "Suprimer l'ancien fichier")
        TextGadget(#Text_27, 550, 460, 190, 30, "Ne pas suprimer l'ancien fichier")
        TextGadget(#Text_28, 270, 560, 490, 40, "Atention la compression et decompression vite fait ou mal fait peut être néfaste sur votre ordinateur !")
      EndIf
    EndIf
EndProcedure

pointeur = 0

open_window_0()

 Repeat
  Select WaitWindowEvent()
   Case #PB_EventMenu
    Select EventMenuID()
     Case #menu_1
      fichier$ = OpenFileRequester("ouvrir...","","tous les fichiers|*.*",1)
      OpenFile(pointeur,fichier$)
      TextGadget(40 + pointeur,90,330 + (pointeur * 10),100,50,"fichier :"+" "+Str(pointeur))
      AddGadgetItem(#combo_0,pointeur,"fichier"+"  "+fichier$)
      pointeur = pointeur + 1
     Case #menu_3
      MessageRequester("info","Compression Fichier v3.4"+Chr(13)+Chr(13)+"auteur :"+Chr(13)+"sven thommet"+Chr(13)+"1 rue, Maurice de taste"+Chr(13)+"57520    Grosbliederstroff")     
     Case #menu_2
      End
    EndSelect
   Case #PB_EventGadget
    Select EventGadgetID() 
     Case #button_0
      destination$ = GetGadgetText(#explorertree_0)
      SetGadgetText(#String_1,destination$)
      SetGadgetText(#String_3,destination$)
      pointeur = pointeur + 1  
     Case #button_1
      fichier$ = OpenFileRequester("ouvrir...","","tous les fichiers|*.*",1)
      OpenFile(pointeur,fichier$)
      TextGadget(40 + pointeur,80,330 + (pointeur * 25),100,15,"fichier :"+" "+Str(pointeur))
      AddGadgetItem(#combo_0,pointeur,"fichier"+"  "+fichier$)
      pointeur = pointeur + 1   
     Case #button_2
      If #radio_6
       compress_de$ = GetGadgetText(#String_0)
      EndIf
      If #radio_7
       combo$ = GetGadgetText(#combo_0)
       compress_de$ = Mid(combo$,9,10)
      EndIf
       compress_a$ = GetGadgetText(#String_1)
        If #radio_1 = 1
         DeleteFile(compress_de$)
        EndIf
        If #radio_3 = 1
         level = 1
        EndIf
        If #radio_4 = 1
         level = 5
        EndIf
        If #radio_5 = 1
         level = 9
        EndIf
        CreatePack(compress_a$)
         AddPackFile(compress_de$,level$)
        ClosePack()
     Case #button_3
      decomp_de$ = GetGadgetText(#String_2)
      decomp_a$ = GetGadgetText(#String_3)
       If #radio_8
        DeleteFile(decomp_de$)
       EndIf
      OpenPack(decomp_de$)
        NextPackFile()
      ClosePack()      
    EndSelect
   Case #PB_EventCloseWindow
    quit = 1
  EndSelect
 Until quit = 1
merci d'avance pour votre aide!!!
bonne journer à tous !!!
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

lorsque je lis ça dans ton source
"Atention la compression et decompression vite fait ou mal fait peut être néfaste sur votre ordinateur !")
moi ça me donne pas vraiment envie d'essayer ton code ! :?
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Regarde le topic ici

il y a 2 procedures pour compresser/décompresser un fichier
essaye de voir ce qui est différent de ton code

http://purebasic.hmt-forum.com/viewtopic.php?t=520
Répondre