Récupérer le nombres de fichiers ou dossiers sélectionnés

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
SpaceMan
Messages : 290
Inscription : mar. 26/oct./2004 19:35
Contact :

Récupérer le nombres de fichiers ou dossiers sélectionnés

Message par SpaceMan »

Salut à tous voici une petite application de compression mais comme d'habitude, je bloque sur un point. :(
récupérer le nombre de fichiers sélectionnés puis le nombre de dossiers sélectionnés et les afficher dans la statusbar
Merci à vous

Code : Tout sélectionner

;Auteur: SpaceMan 
;version: Démo 
;librairie utilisée: pureZip de (gnozal)
;{- Enumerations 
;{ Windows 
Enumeration 
  #Window_0 
  #Window_2 
  #Progression 
EndEnumeration 
;} 
;{ Menu bars 
Enumeration 
  #Menu_Window_0 
EndEnumeration 
;{ Menu items 
Enumeration 
  #Menu_Window_0_0_ExtraireUneArchive 
  #Menu_Window_0_0_OuvrirUneArchive 
  #Menu_Window_0_1_TesterUneArchive 
  #Menu_Window_0_2_MotDePasse 
  #Menu_Window_0_3_Configuration 
  #Menu_Window_0_4_Quitter 
  #Menu_Window_0_5_Compresser 
  #Menu_Window_0_6_CompresserAvecPassword 
  #Menu_Window_0_7_Decompresser 
  #Menu_Window_0_8_SupprimerPassword 
  #Menu_Window_0_9_TutorialPCDEVZIP 
  #Menu_Window_0_10_Enregistrement 
  #Menu_Window_0_11_APropos 
EndEnumeration 
;} 
;{ Status bars 
Enumeration 
  #StatusBar_Window_0 
EndEnumeration 
;} 
;{ Gadgets 
Enumeration 
  #ExplorerComboGadget 
  #ExplorerList_1 
  #StatusBar 
  #compress 
  #decompress 
  #Text_10 
  #String_9 
  #Text_18 
  #String_17 
  #Button_12 
  #Frame3D_16 
  #Text_12 
  #ComboBox_13 
  #Text_14 
  #ComboBox_15 
  #Frame3DGadget_245 
  #TextGadget_244 
  #StringGadget_246 
  #TextGadget_243 
  #StringGadget_247 
  #CheckBoxGadget_242 
  #CheckBoxGadget_241 
  #ButtonGadget_240 
  #ButtonGadget_239 
  #Button_4 
 
EndEnumeration 
Global Disk$ 
Disk$ = "C:\" 
Global Window_0, ProgressBar_Compression, Text_FileProcessed, Text_1, ProgressBar_Progression 
Global nom_archive.s,destination$,pwd$,pwd2$, repfichier$
;} 

Procedure OpenWindow_Window_0() 
  If OpenWindow(#Window_0, 170, 90, 652, 470, "PC&DEV Compressor", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_SizeGadget|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered) 
   SmartWindowRefresh(#Window_0, 1)
    CreateGadgetList(WindowID(#Window_0)) 
    If CreateMenu(#Menu_Window_0, WindowID(#Window_0)) 
      MenuTitle("Menu") 
      MenuItem(#Menu_Window_0_0_OuvrirUneArchive,"Ouvrir Archive") 
      MenuItem(#Menu_Window_0_0_ExtraireUneArchive, "Extraire Archive") 
      MenuItem(#Menu_Window_0_1_TesterUneArchive, "Tester Archive") 
      MenuItem(#Menu_Window_0_3_Configuration, "Configuration") 
      MenuBar() 
      MenuItem(#Menu_Window_0_4_Quitter, "Quitter") 
      MenuTitle("Commandes") 
      ;MenuItem(#Menu_Window_0_12_Compresser, "Compresser") 
      MenuItem(#Menu_Window_0_5_Compresser, "Compresser") 
      MenuItem(#Menu_Window_0_6_CompresserAvecPassword, "Compresser avec Password") 
      MenuBar() 
      MenuItem(#Menu_Window_0_7_Decompresser, "Décompresser") 
      MenuItem(#Menu_Window_0_8_SupprimerPassword, "Supprimer Password") 
      MenuTitle("Aide") 
      MenuItem(#Menu_Window_0_9_TutorialPCDEVZIP, "Tutorial(PC-DEV ZIP)") 
      MenuItem(#Menu_Window_0_10_Enregistrement, "Enregistrement") 
      MenuItem(#Menu_Window_0_11_APropos, "A Propos") 
      
      ExplorerComboGadget(#ExplorerComboGadget, 1, 02, 650, 200, Disk$, #PB_Explorer_Editable) 
      ExplorerListGadget(#ExplorerList_1, 0, 25, 651, 405, Disk$, #PB_Explorer_MultiSelect|#PB_Explorer_AutoSort|#PB_Explorer_AlwaysShowSelection|#PB_Explorer_FullRowSelect) 
      SetGadgetItemAttribute(#ExplorerList_1, 0,#PB_Explorer_ColumnWidth, 347) 
      ; Gadget Resizing 
      PureRESIZE_SetGadgetResize(#ExplorerList_1, 1, 1, 1, 1) 
      PureRESIZE_SetGadgetResize(#ExplorerComboGadget, 1, 1, 1, 1) 
      
    EndIf 
  EndIf 
EndProcedure 
  
  Procedure OpenWindow_Archive() 
  If OpenWindow(#Window_2, 587, 257, 353, 350, "Ajouter Archive", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_ScreenCentered) 
   SmartWindowRefresh(#Window_2, 1) 
    StickyWindow(#Window_2, 1) 
     If CreateGadgetList(WindowID(#Window_2)) 
      TextGadget(#Text_10, 7, 21, 80, 15, "Nom de l'archive") 
      StringGadget(#String_9, 92, 16, 221, 20, "") 
      TextGadget(#Text_18, 8, 55, 65, 15, "Emplacement") 
      StringGadget(#String_17, 92, 50, 220, 20, "") 
      ButtonGadget(#Button_12, 318, 51, 25, 20, "...") 
  
      Frame3DGadget(#Frame3D_16, 10, 85, 330, 85, "Option de Compression") 
      TextGadget(#Text_12, 25, 105, 90, 15, "Format de l'archive") 
      ComboBoxGadget(#ComboBox_13, 220, 100, 105, 100):DisableGadget(#ComboBox_13,1) 
      AddGadgetItem(#ComboBox_13, 0, "Zip") 
      AddGadgetItem(#ComboBox_13, 1, "Arj") 
      AddGadgetItem(#ComboBox_13, 2, "Ace") 
      SetGadgetState(#ComboBox_13, 0) 
      
      TextGadget(#Text_14, 25, 135, 110, 15, "Type de compresssion") 
      ComboBoxGadget(#ComboBox_15, 220, 135, 105, 100):DisableGadget(#ComboBox_15,1) 
      AddGadgetItem(#ComboBox_15, 0, "Normal") 
      AddGadgetItem(#ComboBox_15, 1, "Deflate") 
      SetGadgetState(#ComboBox_15, 0) 
    
      Frame3DGadget(#Frame3DGadget_245, 10, 182, 330, 135, "Mot de  Passe") 
      TextGadget(#TextGadget_244, 20, 200, 118, 15, "Entrer le mot de passe") 
      StringGadget(#StringGadget_246, 165, 235, 160, 20, "", #PB_String_Password) 
      TextGadget(#TextGadget_243, 20, 240, 128, 15, "Confirmer le mot de passe") 
      StringGadget(#StringGadget_247, 165, 199, 160, 20, "", #PB_String_Password) 
      CheckBoxGadget(#CheckBoxGadget_242, 20, 269, 140, 15, "Afficher le mot de Passe") 
      CheckBoxGadget(#CheckBoxGadget_241, 20, 294, 180, 15, "Crypter le nom des fichiers"):DisableGadget(#CheckBoxGadget_241,1) 
      ButtonGadget(#ButtonGadget_240, 218, 324, 60, 20, "OK") 
      ButtonGadget(#ButtonGadget_239, 288, 325, 54, 19, "Annuler") 

    EndIf 
  EndIf 
EndProcedure 
  
 Procedure Open_Window() 
  Window_0 = OpenWindow(#PB_Any, 382, 285, 315, 128, "Compressor",#PB_Window_TitleBar | #PB_Window_ScreenCentered) 
  If Window_0 : StickyWindow(Window_0, 1) 
    If CreateGadgetList(WindowID(Window_0)) 
      ProgressBar_Compression = ProgressBarGadget(#PB_Any, 5, 25, 305, 20, 0, 100) 
      Text_FileProcessed = TextGadget(#PB_Any, 74, 4, 150, 15, "Extraction des fichiers...", #PB_Text_Center) 
      Text_1 = TextGadget(#PB_Any, 100, 58, 100, 15, "Progression...", #PB_Text_Center) 
      ProgressBar_Progression = ProgressBarGadget(#PB_Any, 5, 77, 305, 20, 0, 100) 
      ButtonGadget(#Button_4, 240, 106, 70, 18, "Annuler") 
    EndIf 
  EndIf 
EndProcedure
  
 ;Procedure Close_Window() 
  ;CloseWindow(Window_0) 
 ;EndProcedure 
  
 ;Procedure PureZIP_CallbackC(File.s, PerCent.f) 
 ; SetGadgetText(Text_FileProcessed, GetFilePart(File)) 
 ; SetGadgetState(ProgressBar_Compression, PerCent.f) 
  ;While WindowEvent() : Wend 
;EndProcedure 

;Procedure PureZIP_CallbackP(File.s, PerCent.f) 
;  SetGadgetState(ProgressBar_Progression, PerCent.f) 
;  While WindowEvent() : Wend 
;EndProcedure 
; 
;myFileinfo.PureZIP_FileInfo 
;PureZIP_SetProgressionCallback(@PureZIP_CallbackP()) 
;PureZIP_SetCompressionCallback(@PureZIP_CallbackC()) 
    
Procedure CompresserArchive() 
Protected i
 If GetGadgetState(#ExplorerList_1) > -1 
    nom_archive$ = GetGadgetText(#String_9) 
    destination$ = GetGadgetText(#String_17) 
    If nom_archive$ And destination$ :CloseWindow(#Window_2) 
      For i = 0 To CountGadgetItems(#ExplorerList_1) - 1 
        If GetGadgetItemState(#ExplorerList_1, i) & #PB_Explorer_Selected ;un élément est sélectionné et c'est ... 
         If GetGadgetItemState(#ExplorerList_1, i) & #PB_Explorer_File ; ... un fichier 
         PureZIP_Archive_Create(destination$+nom_archive$, #APPEND_STATUS_CREATE)
           Debug GetGadgetItemText(#ExplorerList_1, i, 0) + " est sélectionné et c'est un fichier"
             ;PureZIP_AddFiles(destination$+nom_archive$,GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, i, 0), #PureZIP_StorePathRelative ,#PureZIP_NotRecursive)
           
            ; PureZIP_Archive_Create(destination$+nom_archive$, #APPEND_STATUS_CREATE)
           Debug PureZIP_Archive_Compress(GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, i, 0), #False)
                  PureZIP_Archive_Close()
          
          ElseIf GetGadgetItemState(#ExplorerList_1, i) & #PB_Explorer_Directory ; ... un répertoire
            ;Debug GetGadgetItemText(#ExplorerList_1, i, 0) + " est sélectionné et c'est un dossier"
               ;PureZIP_AddFiles(destination$+nom_archive$,GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, i, 0)+"\" + "*.*", #PureZIP_StorePathRelative ,#PureZIP_Recursive)
             EndIf: EndIf 
           Next 
        Else 
      MessageRequester("Compressor","Véririfier le nom et la destination de l'archive !",#MB_ICONERROR) 
    EndIf 
  Else 
    MessageRequester("Compressor","Veuillez selectionnez les fichiers !",#MB_ICONERROR) 
  EndIf 
EndProcedure 

Procedure statusbar1() 
   Protected  Nombre_Elements 
       Nombre_Elements = CountGadgetItems(#ExplorerList_1) 
        
   If CreateStatusBar(#StatusBar_Window_0, WindowID(#Window_0)) 
        AddStatusBarField(175) 
        AddStatusBarField(480) 
      StatusBarText(#StatusBar_Window_0,0, Str(Nombre_Elements) + " "+"élément(s)") 
   EndIf
EndProcedure 

OpenWindow_Window_0() 
statusbar1() 
Repeat 
  Select WaitWindowEvent() 
    
    ; /////////////////// 
    Case #PB_Event_Menu 
      Select EventMenu() 
        Case #Menu_Window_0_5_Compresser 
         If GetGadgetState(#ExplorerList_1) > -1 
            OpenWindow_Archive() : SetGadgetText(#String_9,"Archive.zip") 
          Else:MessageRequester("Compressor","Veuillez selectionnez les fichiers !",#MB_ICONERROR)  
          EndIf 
          
        Case #Menu_Window_0_7_Decompresser 
        Case #Menu_Window_0_0_ExtraireUneArchive
        Case #Menu_Window_0_0_OuvrirUneArchive 
        Case #Menu_Window_0_1_TesterUneArchive 
        Case #Menu_Window_0_2_MotDePasse: 
        Case #Menu_Window_0_3_Configuration
        Case #Menu_Window_0_4_Quitter:Break 
      EndSelect  
      
        ; //////////////////////
        Case #PB_Event_Gadget 
         EventGadget = EventGadget() 
         EventType = EventType() 
       Select EventGadget() 
        
        Case #ExplorerComboGadget 
          SetGadgetText(#ExplorerList_1, GetGadgetText(#ExplorerComboGadget)) 
          If  EventType() = #PB_EventType_Change 
         Nombre_Elements = CountGadgetItems(#ExplorerList_1) 
         StatusBarText(#StatusBar_Window_0,0, Str(Nombre_Elements) + " élément(s)") :EndIf 
        
        
        Case #ButtonGadget_239 
        CloseWindow(#Window_2) 
          
        Case #ButtonGadget_240 
        nom_archive$ = GetGadgetText(#String_9) 
          destination$ = GetGadgetText(#String_17) 
          pwd$ = GetGadgetText(#StringGadget_246) 
          pwd2$ = GetGadgetText(#StringGadget_246) 
          If  nom_archive$ <> "" And destination$ <> "" And pwd$ = pwd2$ And pwd$ = "" And pwd2$ = "" 
             SetWindowState(#Window_0,#PB_Window_Minimize) 
            ;Open_Window() 
            CompresserArchive():SetWindowState(#Window_0,#PB_Window_Normal) ;:Close_Window()           
            ;ElseIf nom_archive$ <> "" And destination$ <> "" And pwd$ <> "" And pwd2$ <> "" And pwd$ = pwd2$ 
            ;  SetWindowState(#Window_0,#PB_Window_Minimize) 
            ;Open_Window() 
            ;CompresserArchive_Pwd() :Close_Window():SetWindowState(#Window_0,#PB_Window_Normal) 
          ;Else 
          ;  MessageRequester("Compressor","Véririfier nom, destination ou mot de passe SVP !",#MB_ICONERROR) 
          ;  SetGadgetText(#StringGadget_246,""):SetGadgetText(#StringGadget_247,""):SetGadgetState(#StringGadget_246,1) 
          EndIf 
          
        Case #ExplorerList_1 
            If  EventType() = #PB_EventType_LeftDoubleClick 
            SetGadgetText(#ExplorerComboGadget,GetGadgetText(#ExplorerList_1)): EndIf 
            
      EndSelect 
      
      ; //////////////////////    
    Case #PB_Event_CloseWindow 
      EventWindow = EventWindow() 
      If EventWindow = #Window_0 
      Break 
      ElseIf EventWindow = #Window_2 
      CloseWindow(#Window_2) 
    EndIf 
  EndSelect 
ForEver 
Lna
Messages : 181
Inscription : mar. 21/juin/2005 11:11

Message par Lna »

Code : Tout sélectionner

        Case #ExplorerList_1 
            If  EventType() = #PB_EventType_LeftDoubleClick 
            SetGadgetText(#ExplorerComboGadget,GetGadgetText(#ExplorerList_1)): EndIf 
            
            compteur_dossier=0
            compteur_fichier=0
            
            last_element=CountGadgetItems(#ExplorerList_1)-1
            
            For position_element=0 To last_element
              
              etat_gadget=GetGadgetItemState(#ExplorerList_1,position_element)
              
              If etat_gadget & #PB_Explorer_Selected
                If etat_gadget & #PB_Explorer_File
                  compteur_fichier+1
                Else
                  If position_element=0
                    If GetGadgetItemText(#ExplorerList_1,0,0)=".." ; Pour ne pas compter le .. comme dossier
                     compteur_dossier-1
                    EndIf
                  EndIf
                  
                  compteur_dossier+1
                EndIf
              EndIf
              
            Next position_element
                        
            StatusBarText(#StatusBar_Window_0,1, Str(compteur_dossier)+" dossier(s) "+Str(compteur_fichier)+" fichier(s)"+" sélectionné(s)")
@ peluche
SpaceMan
Messages : 290
Inscription : mar. 26/oct./2004 19:35
Contact :

Message par SpaceMan »

Exactement ce que je veux LNA
heureusement que cette fois ci il y a pas de peine pour moi :lol: :lol: :lol: car j'avais pas fini avec l'autre.
merci à toi. :D
Répondre