Page 1 sur 1

Un listeur de signatures MD5 de Fichiers

Publié : jeu. 04/sept./2008 20:22
par Ar-S
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.

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
;
;}
Voilou

Publié : jeu. 04/sept./2008 22:06
par gildev
Pas mal! Il falait y penser. Bien joué.

Publié : ven. 05/sept./2008 0:52
par kernadec
bonsoir
bien foutu, facile a utiliser sur le bureau, merci AR-s

Publié : dim. 07/sept./2008 21:58
par Ar-S
Version finale plus évoluée ici : http://www.purebasic.fr/french/viewtopic.php?t=8532