Un listeur de signatures MD5 de Fichiers
Publié : jeu. 04/sept./2008 20:22
Voilà je viens de me faire un petit programme qui permet de lister 1 ou plusieurs fichiers via le "glissé/déposé" et de noter pour chacun sa signature MD5.
Instructions
- Glissez/Déposez simplement vos fichiers et le programme va créer un .txt contenant le nom du fichier et sa signature MD5.
Voilou
Instructions
- Glissez/Déposez simplement vos fichiers et le programme va créer un .txt contenant le nom du fichier et sa signature MD5.
Code : Tout sélectionner
; MD5 File Control by Ar-S
; Date : 4 sept 2008
; PB 4.20
Enumeration
#WIN
#AFF
#AFFMD5
EndEnumeration
;}
Global NomCourt$,NomFichier$,MonFichier$
;}
Procedure OpenWindow_WIN()
If OpenWindow(#WIN, 536, 445, 300, 38, "MD5 File Control par Ar-S", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
StickyWindow(#WIN,1)
If CreateGadgetList(WindowID(#WIN))
StringGadget(#AFF, 0, 0, 300, 19, "Glisser/déposez vos fichiers", #PB_String_BorderLess|#ES_CENTER|#PB_String_ReadOnly)
StringGadget(#AFFMD5, 0, 19, 300, 18, "Pour lister les MD5", #PB_String_BorderLess|#ES_CENTER|#PB_String_ReadOnly)
; Gadget Colors
PureCOLOR_SetGadgetColor(#AFF, $FEECE7, $0)
PureCOLOR_SetGadgetColor(#AFFMD5, $FEECE7, $0)
EndIf
EnableWindowDrop(#WIN, #PB_Drop_Files, #PB_Drag_copy)
EndIf
EndProcedure
OpenWindow_WIN()
;{- Event loop
Repeat
Select WaitWindowEvent()
; ///////////////////
Case #PB_Event_Gadget
Select EventGadget()
Case #AFF
Case #AFFMD5
EndSelect
Case #PB_Event_WindowDrop
ok=0
Path$=GetCurrentDirectory()
OpenPreferences(Path$+"MD5_List.txt") ;ouverture / creation du fichier txt qui contiendra la liste des MD5
PreferenceGroup("MD5") ; On détermine le GROUPE 'MD5'
NomFichier$=EventDropFiles()
Count = CountString(NomFichier$, Chr(10)) + 1
For i = 1 To Count
MonFichier$ = StringField(NomFichier$, i, Chr(10))
Resultat = FileSize(MonFichier$)
NomCourt$=GetFilePart(MonFichier$)
If Resultat = -2 ; Si un dossier est glissé/déposé, alors message erreur
SetGadgetText(#AFF,"Pas deMD5 pour un répertoire")
ElseIf Resultat>1
MD5$ = MD5FileFingerprint(MonFichier$)
WritePreferenceString(NomCourt$, MD5$)
SetGadgetText(#AFF,"Nom de la liste : MD5_List.txt")
SetGadgetText(#AFFMD5,"Rep: "+Path$)
ok=1 ; Petit marqueur pour signaler qu'une liste a été faite et qu'on peux inscrire les infos 'Coded by', 'Licence' et 'Comment'
EndIf
Next i
If ok=1 ; Comme ça n'ecrit qu'une seule fois les infos
PreferenceGroup("INFO")
WritePreferenceString("Coded by", "Ar-S")
WritePreferenceString("Licence", "Freeware")
WritePreferenceString("Comment", "2008 - LDV MULTIMEDIA")
ClosePreferences()
SetClipboardText(NomCourt$+" MD5 is : "+MD5$);on copie le dernier MD5 dans le presse papier
If RunProgram(Path$+"MD5_List.txt",Path$,Path$,1)
EndIf
Else
ClosePreferences()
EndIf
Case #PB_Event_CloseWindow
Select EventWindow()
Case #WIN
ClosePreferences()
CloseWindow(#WIN)
Break
EndSelect
EndSelect
ForEver
;
;}