compresseur de fichier
essayer ce code, ça devrait aller ce coup ci
j'insiste malgré touts: il ne faut pas renommer le fichier une fois compréssé
Code : Tout sélectionner
Enumeration
#Open_Window_0
EndEnumeration
Enumeration
#ButtonImage_0
#ButtonImage_1
#Image0
#Image1
EndEnumeration
Repeat
Repeat
Clr01=RGB(Random(255),Random(255),Random(255))
Clr02=RGB(Random(255),Random(255),Random(255))
Until Clr01<>Clr02
Clr01$=Hex(Clr01)
Clr02$=Hex(Clr02)
Clr01=Val(Clr01$)
Clr02=Val(Clr02$)
Until Clr01> 10000 Or Clr02> 10000
If CreateImage(#Image0,125,40)
StartDrawing(ImageOutput(#Image0))
Box(0,0,125,40,Clr02)
DrawText(12,13,"COMPRESSER",Clr01,Clr02)
StopDrawing()
If CreateImage(#Image1,125,40)
StartDrawing(ImageOutput(#Image1))
Box(0,0,125,40,Clr02)
DrawText(5,13,"DECOMPRESSER",Clr01,Clr02)
StopDrawing()
EndIf
EndIf
Procedure Open_Window_0()
If OpenWindow(#Open_Window_0, 587, 340, 265, 60, " ..::_FORTIX_COMPACT_FILE_::.. ", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Open_Window_0))
ButtonImageGadget(#ButtonImage_0, 5, 10, 125, 40, ImageID(#Image0))
ButtonImageGadget(#ButtonImage_1, 135, 10, 125, 40, ImageID(#Image1))
EndIf
EndIf
EndProcedure
Open_Window_0()
SetWindowColor(#Open_Window_0, Clr01)
GadgetToolTip(#ButtonImage_0, "Appuyer ici pour ouvrir et compresser un fichier.")
GadgetToolTip(#ButtonImage_1, "Appuyer ici pour ouvrir et décompresser un fichier (*.FCF).")
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case #ButtonImage_0
Repeat
fichier_comp$ = OpenFileRequester("Fichier à compresser","","tout sauf '*.FCF' (Fortix_Compact_Format)|*.*",0)
If GetExtensionPart(fichier_comp$)="FCF"
f=0
Else
f=1
EndIf
Until f=1
If fichier_comp$
CreatePack(fichier_comp$+".FCF")
AddPackFile(fichier_comp$,9)
ClosePack()
Chemin$ = GetPathPart(fichier_comp$)
Fichier$ = GetFilePart(fichier_comp$)
Repeat
Delay(1)
If ExamineDirectory(0,Chemin$,Fichier$+".FCF")
buffer$ = Space(#MAX_PATH)
buffer$ =fichier_comp$+".FCF"
SetFileAttributes_(@buffer$,#FILE_ATTRIBUTE_READONLY);:Debug "protegé"
If DeleteFile(fichier_comp$)
FinishDirectory(0)
t=1
EndIf
EndIf
Until t=1
EndIf
Case #ButtonImage_1
fichier_decomp$ = OpenFileRequester("Selection du fichier à decompresser","","'*.FCF' (Fortix_Compact_Format)|*.FCF",0 )
If fichier_decomp$
Chemin0$ = GetPathPart(fichier_decomp$)
Fichier0$ = GetFilePart(fichier_decomp$)
ExamineDirectory(0, Chemin0$, Fichier0$)
NextDirectoryEntry(0)
attrib0=GetFileAttributes(fichier_decomp$)
;If attrib0 & #PB_FileSystem_Compressed And attrib0 & #PB_FileSystem_ReadOnly;:Debug attrib0
buffer$ = Space(#MAX_PATH)
buffer$ = fichier_decomp$
SetFileAttributes_(@buffer$,#FILE_ATTRIBUTE_NORMAL);:Debug "plus protegé"
FinishDirectory(0)
If OpenPack(fichier_decomp$)
memoire = NextPackFile()
taille = PackFileSize()
fichier_decomp2$=ReplaceString(fichier_decomp$,".FCF"," ")
If fichier_decomp2$
If CreateFile(0,fichier_decomp2$)
WriteData(0,memoire,taille)
CloseFile(0)
ClosePack()
Chemin$ = GetPathPart(fichier_decomp2$)
Fichier$ = GetFilePart(fichier_decomp2$)
Repeat
Delay(1)
If ExamineDirectory(0,Chemin$,Fichier$)
If DeleteFile(fichier_decomp$)
FinishDirectory(0)
s=1
EndIf
EndIf
Until s=1
EndIf
EndIf
EndIf
;EndIf
EndIf
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
CloseWindow(#Open_Window_0)
End
j'insiste malgré touts: il ne faut pas renommer le fichier une fois compréssé
- Kwai chang caine
- Messages : 6989
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Bravo Mr Fortix t'es un champion
J'avais pensé a garder le fichier compréssé et a ne plus rien toucher.
ça marche, j'ai récupéré mon original et je t'en remercie.
Tu peux avoir l'esprit tranquille.
Ton soucis démontre ton professionalisme et je t'en remercie.
A la limite si je peux me permettre un conseil, ce serait juste une petite option, "Effacer l'original oui / non" ça permettrait d'éviter ce genre de probleme, car au cas ou le fichier est méga important et que par malheur le code plante au milieu pour je ne sais quelle raison, l'utilisateur n'a pas la désagreable surprise de voir son super vital fichier disparaitre sans son consentement
Encore bravo et merci.

J'avais pensé a garder le fichier compréssé et a ne plus rien toucher.
ça marche, j'ai récupéré mon original et je t'en remercie.
Tu peux avoir l'esprit tranquille.
Ton soucis démontre ton professionalisme et je t'en remercie.
A la limite si je peux me permettre un conseil, ce serait juste une petite option, "Effacer l'original oui / non" ça permettrait d'éviter ce genre de probleme, car au cas ou le fichier est méga important et que par malheur le code plante au milieu pour je ne sais quelle raison, l'utilisateur n'a pas la désagreable surprise de voir son super vital fichier disparaitre sans son consentement

Encore bravo et merci.