PureBasic

Forums PureBasic
Nous sommes le Dim 19/Mai/2013 12:01

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 44 messages ]  Aller à la page Précédente  1, 2, 3  Suivante
Auteur Message
 Sujet du message: Re: Précalculation du nombre de fichier charger
MessagePosté: Mar 13/Mar/2012 22:28 
Hors ligne

Inscription: Mer 11/Nov/2009 18:17
Messages: 1251
Localisation: Poitiers (Vienne)
Help, ça marche pas !!!

Edit: Bah c'est quoi ce vieux code pourie là :roll:

_________________
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php


Haut
 Profil  
 
 Sujet du message: Re: Précalculation du nombre de fichier charger
MessagePosté: Mar 13/Mar/2012 22:59 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 13/Fév/2004 0:57
Messages: 3065
dayvid a écrit:
Bon c pas ça que je demande moi :wink:

Je ne veut pas que les deux truc soit dans la même boucle
je voudrait une boucle avec NombreFichier et une autre avec NextSelectedFileName()

Je veut savoir le nombre de fichier AVENT d'utiliser NextSelectedFileName() dans une boucle !


Pourquoi t'as besoin de connaitre le nombre de fichier avant NextSelectedFileName()?


Haut
 Profil  
 
 Sujet du message: Re: Précalculation du nombre de fichier charger
MessagePosté: Mar 13/Mar/2012 23:10 
Hors ligne

Inscription: Mer 11/Nov/2009 18:17
Messages: 1251
Localisation: Poitiers (Vienne)
En faite dans mon code j'en est besoin car j'ai une barre de progression
que je dois changer le maxi avec la valeur max au nombre de fichier

Tien mate moi ça:

Code:
; Crée par monsieur dieppedalle david le 7 mars 2012

UsePNGImageDecoder()
UseJPEG2000ImageDecoder()
UseJPEGImageDecoder()
UseTGAImageDecoder()
UseTIFFImageDecoder()

Global FichierImage$ = ""
Global SelectionFichier$ = ""

Global NewList CheminFichier.s()
Global NewList NomFichier.s()
Global NewList ExtantionFichier.s()

Global NewList DataImage.s()
Global NewList ImageNoncharger.s()
Global NewList FichierIncorrecte.s()
Global NewList NumeroImage.l()

Enumeration
  #Image
  #FichierImage
  #Window_0
  #ListIcon_explorateur_fichier
  #ProgressBarProgression
  #MenuePopup
  #Button_supprimer
  #Button_ajouter
  #Button_valider
  #Button_quitter
EndEnumeration

Procedure.s ReplaceAccents(Chaine$)
 
  Chaine$=LCase(Chaine$) ; On passe tout en min histoire que ce soit propre et que le ReplaceString() dure 2 x moins longtemps
  CharToFind.s="àáâãäåßçèéêëìíîïñòóôõöÞùúûüýÿ"
  CharToReplace.s="aaaaaabceeeeiiiinooooopuuuuyy"
 
  For i = 1 To Len(CharToFind)
    ReplaceString(Chaine$, Mid(CharToFind,i,1), Mid(CharToReplace,i,1),#PB_String_InPlace, 1)
  Next
 
  ; vérif pour les caractères spéciaux passant de 1 à 2 caractères
  Chaine$ = ReplaceString(Chaine$, "œ", "oe")
  Chaine$ = ReplaceString(Chaine$, "æ", "ae")
 
  ProcedureReturn Chaine$
EndProcedure

Procedure DisableAero(WindowsID.i, State.i)
  If OpenLibrary(0, "dwmapi.dll")
   
    If State
      State = 1
    Else
      State = 2
    EndIf
   
    CallFunction(0, "DwmSetWindowAttribute", WindowsID, 2, @State, SizeOf(Long))
    CloseLibrary(0)
  EndIf
EndProcedure

Procedure GetAssociatedFileIcon(IconPath.s, IconSize)
  Protected FileInfo.SHFILEINFO
  SHGetFileInfo_(IconPath, 0, @FileInfo, SizeOf(SHFILEINFO), #SHGFI_ICON | IconSize)
  ProcedureReturn FileInfo\hIcon
EndProcedure

Procedure SupprimerFichier()
 
  NombreFichiers = CountGadgetItems(#ListIcon_explorateur_fichier)
 
  For VerifficationSelection = NombreFichiers - 1 To 0 Step - 1
    SelectionFichiers = GetGadgetItemState(#ListIcon_explorateur_fichier, VerifficationSelection)
   
    If SelectionFichiers = #PB_ListIcon_Checked Or SelectionFichiers = #PB_ListIcon_Checked | #PB_ListIcon_Selected
      Checked = 1
      Break
    EndIf
   
    Checked = 0
   
  Next
 
  If Checked = 1
    Reponce = MessageRequester("Attention", "      Vous êtes sur de vouloir supprimer ces fichiers ?", 52)
   
    If Reponce = 6
      SelectionFichiers$ = ""
     
      For VerifficationSelection = NombreFichiers - 1 To 0 Step - 1
        SelectionFichiers = GetGadgetItemState(#ListIcon_explorateur_fichier, VerifficationSelection)
        If SelectionFichiers = #PB_ListIcon_Checked Or SelectionFichiers = #PB_ListIcon_Checked | #PB_ListIcon_Selected
          RemoveGadgetItem(#ListIcon_explorateur_fichier, VerifficationSelection)
          ;Debug VerifficationSelection
        EndIf
       
      Next
     
    EndIf
   
  EndIf
 
EndProcedure

; Procedure de chargement d'une image
Procedure.l ChargementImage()
 
  Position = 0
 
  ForEach NomFichier()
   
    SelectElement(CheminFichier(), Position)
   
    FichierImage$ = CheminFichier.s() + NomFichier()
   
    If FichierImage$
     
      If FindString(LCase(GetFilePart(FichierImage$)), ".bmp", 1) Or FindString(LCase(GetFilePart(FichierImage$)), ".png", 1) Or FindString(LCase(GetFilePart(FichierImage$)), ".jpg", 1)
       
        Image = LoadImage(#PB_Any, FichierImage$)
       
        If Image <> 0
          AddElement(NumeroImage())
          NumeroImage() = Image
        Else
          AddElement(ImageNoncharger())
          ImageNoncharger() = GetFilePart(FichierImage$)
          ; MessageRequester("Erreur de chargement !", "      Impossible de charger l'image suivente: " + Chr(34) + GetFilePart(FichierImage$) + Chr(34) + " !", 16)
          ;End
        EndIf
       
      Else
        AddElement(FichierIncorrecte())
        FichierIncorrecte() = GetFilePart(FichierImage$)
        ; MessageRequester("Fichier invalide !", "      Veuillez choisir un fichier d'image invalide !", 48)
        ;End
      EndIf
     
    EndIf
   
    Position + 1
   
  Next
 
  Debug "Chargements des Images tèrminer avec succer !"
EndProcedure

Procedure.s TraitementNomImage(NomImage$)
 
  ;--------------------------------------------------------------------------------------------------------------------------------------------
  ; Recherche et suppression de l'extantion du nom du fichier de l'image
  ;--------------------------------------------------------------------------------------------------------------------------------------------
 
  For i = Len(NomImage$) To 1 Step -1
    Caractere$ = Mid(NomImage$, i, 1)
   
    If Caractere$ = "."
      NomImage$ = Mid(NomImage$, 1,  i-1)
      Break
    EndIf
   
  Next
 
  ; --------------------------------------------------------------------------------------------------------------------------------------------
  ; Convertion des caractères a accent
  ;--------------------------------------------------------------------------------------------------------------------------------------------
 
  NomImage$ = LCase(NomImage$) ; On passe tout en min histoire que ce soit propre et que le ReplaceString() dure 2 x moins longtemps
  CharToFind.s = ".àáâãäåßçèéêëìíîï ñòóôõöÞùúûüýÿ-"
  CharToReplace.s = "_aaaaaabceeeeiiii_nooooopuuuuyy_"
 
  For i  =  1 To Len(CharToFind)
    ReplaceString(NomImage$, Mid(CharToFind, i, 1), Mid(CharToReplace, i, 1), #PB_String_InPlace, 1)
  Next
 
  ; Veriffication pour les caractères spéciaux passant de 1 à 2 caractères
  NomImage$ = ReplaceString(NomImage$, Chr(156), "oe") ; "œ", Currieusement ça ne marche pas si l'on met la chaine de caractère "œ" a la place de Chr(156) !
  NomImage$ = ReplaceString(NomImage$, "æ", "ae") ; Mais ici, aucun problème a signialer, à n'i rien comprendre !
 
 
  ProcedureReturn NomImage$
 
EndProcedure

Procedure.s ConvertDataImage()
 
  Position = 0
 
  ForEach NumeroImage()
   
    SelectElement(CheminFichier(), Position)
    SelectElement(NomFichier(), Position)
   
    FichierImage$ = CheminFichier.s() + NomFichier()
   
    SelectElement(NumeroImage(), Position)
   
    AddElement(DataImage())
    DataImage() + "DataSection" + Chr(13) + Chr(10) + TraitementNomImage(GetFilePart(FichierImage$)) + ":" + Chr(13) + Chr(10)
   
    LigneCouleurHexa = 0
   
    X = 0
    Y = 0
   
    LargeurImage = ImageWidth(NumeroImage())
    HauteurImage = ImageHeight(NumeroImage())
   
    StartDrawing(ImageOutput(NumeroImage()))
    DrawingMode(#PB_2DDrawing_AlphaBlend)
   
    Repeat
     
      Couleur = Point(X, Y)
     
      If LigneCouleurHexa = 0
        AddElement(DataImage())
        DataImage() = "Data.l "
        LigneCouleurHexa + 1
      ElseIf LigneCouleurHexa < 50
        DataImage()+ "$" + Hex(Couleur, #PB_Long) + ", "
        LigneCouleurHexa + 1
      Else
        DataImage() + "$" + Hex(Couleur, #PB_Long) + Chr(13) + Chr(10)
        LigneCouleurHexa = 0
      EndIf
     
      If X <> LargeurImage - 1
        X + 1
      Else
        X = 0
        Y + 1
      EndIf
     
    Until X = LargeurImage - 1 And Y = HauteurImage - 1
   
    DataImage() = Mid(DataImage(), 1, Len(DataImage()) - 2) + Chr(13) + Chr(10)
       
    AddElement(DataImage())
    DataImage() + "EndDataSection" + Chr(13) + Chr(10) + Chr(13) + Chr(10)
   
    StopDrawing()
   
    Position + 1
  Next
 
  Debug "Générations des codes des images terminer avec succer !"
EndProcedure

Procedure GenerationData()
 
  Fichiers = 1
 
  Selection1Fichier$ = StringField(SelectionFichier$, Fichiers, "|")
  NombreFichier = 0
 
  Repeat
   
    NomFichier$ = GetFilePart(Selection1Fichier$)
    CheminFichier$ = GetPathPart(Selection1Fichier$)
    ExtensionFichier$ = GetExtensionPart(Selection1Fichier$)
   
    AddElement(CheminFichier())
    CheminFichier() = CheminFichier$
   
    AddElement(NomFichier())
    NomFichier() = NomFichier$
   
    AddElement(ExtantionFichier())
    ExtantionFichier() = ExtensionFichier$
   
    NombreFichier + 1
   
    Fichiers + 1
   
    Selection1Fichier$ = StringField(SelectionFichier$, Fichiers, "|")
   
  Until Selection1Fichier$ = ""
 
  Fichiers = 1
 
  Selection1Fichier$ = StringField(SelectionFichier$, Fichiers, "|")
  NombreFichier = 0
 
  ChargementImage()
  ConvertDataImage()
 
  If OpenFile(1, "ConvertDataImage.txt")
    FileSeek(1, 0) ; Place le pointeur au début du fichier pour tous supprimer
    TruncateFile(1) ; Supprimer tous ce qui se trouve après le pointeur d'écriture

    ForEach DataImage()
      FileSeek(1, Lof(1)) ; Place le pointeur à la fin du fichier en utilisant le résultat de Lof()
      WriteString(1, DataImage()) ; Ecrie le contenue de DataImage()
    Next
   
    CloseFile(1)
    MessageRequester("Oppération terminer avec succer !", "      Le code a été copier dans le fichier ConvertDataImage !", 64)
  Else
    Debug 0
  EndIf
 
EndProcedure

Procedure MaFenetre()
  If OpenWindow(#Window_0, 421, 212, 425, 275, "Convertisseur de fichier image vers fichier texte",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
    DisableAero(WindowID(#Window_0), 1)
   
    WindowBounds(#Window_0, 365, 250, #PB_Ignore, #PB_Ignore)
   
    ListIconGadget(#ListIcon_explorateur_fichier, 10, 10, 405, 205, "Fichiers", 9999, #PB_ListIcon_CheckBoxes | #PB_ListIcon_MultiSelect | #PB_ListIcon_GridLines)
   
    CreatePopupMenu(#MenuePopup)
    MenuItem(1, "Cocher la selection")
    MenuItem(2, "Décocher la selection")
    MenuBar()
    MenuItem(3, "Supprimer la selection")
    MenuBar()
    MenuItem(4, "Sélectionner Tous")
    MenuItem(5, "Désélectionner Tous")
   
    ButtonGadget(#Button_supprimer, 130, 235, 70, 25, "Supprimer")
    ButtonGadget(#Button_ajouter, 55, 235, 70, 25, "Ajouté")
    ButtonGadget(#Button_valider, 220, 235, 70, 25, "Valider")
    ButtonGadget(#Button_quitter, 295, 235, 70, 25, "Quitter")
   
    ProgressBarGadget(#ProgressBarProgression, 10, 217, 405, 10, 1, 100)
   
    PureRESIZE_SetGadgetResize(#ListIcon_explorateur_fichier, 1, 1, 1, 1)
   
    PureRESIZE_SetGadgetResize(#ProgressBarProgression, 1, 0, 1, 1)
    PureRESIZE_SetGadgetProportionalResize(#ProgressBarProgression, 0, 0, 1, 0)
   
    PureRESIZE_SetGadgetResize(#Button_supprimer, 1, 0, 1, 1)
    PureRESIZE_SetGadgetProportionalResize(#Button_supprimer, 1, 0, 0, 0)
   
    PureRESIZE_SetGadgetResize(#Button_ajouter, 1, 0, 1, 1)
    PureRESIZE_SetGadgetProportionalResize(#Button_ajouter, 1, 0, 0, 0)
   
    PureRESIZE_SetGadgetResize(#Button_valider, 1, 0, 1, 1)
    PureRESIZE_SetGadgetProportionalResize(#Button_valider, 1, 0, 0, 0)
   
    PureRESIZE_SetGadgetResize(#Button_quitter, 1, 0, 1, 1)
    PureRESIZE_SetGadgetProportionalResize(#Button_quitter, 1, 0, 0, 0)
   
  EndIf
 
  Repeat ; Start of the event loop
   
    Event = WaitWindowEvent() ; This line waits until an event is received from Windows
    WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
    GadgetID = EventGadget() ; Is it a gadget event?
    Menu = EventMenu()
    EventType = EventType() ; The event type
   
    If Event = #PB_Event_Gadget
     
      If GadgetID = #ListIcon_explorateur_fichier
       
        If EventType = #PB_EventType_LeftDoubleClick
          Selection = GetGadgetState(#ListIcon_explorateur_fichier)
         
          If Selection > -1
            EtasSelection = GetGadgetItemState(#ListIcon_explorateur_fichier, Selection)
           
            If EtasSelection = 1
              SetGadgetItemState(#ListIcon_explorateur_fichier, Selection, 3)
            ElseIf EtasSelection = 3
              SetGadgetItemState(#ListIcon_explorateur_fichier, Selection, 1)
            EndIf
           
          EndIf
         
        ElseIf EventType = #PB_EventType_RightClick
          DisplayPopupMenu(#MenuePopup,WindowID(#Window_0)) 
        EndIf
       
      ElseIf GadgetID = #Button_supprimer
        SupprimerFichier()
       
      ElseIf GadgetID = #Button_ajouter
        RepertoireUtilisateur$ = GetHomeDirectory()
        RepertoireUtilisateur$ + "\Bureau\"
        FichierParDefaut$ = RepertoireUtilisateur$
        Filtre$ = "Tous les fichiers (*.*)|*.*"
        Filtre  = 0
        NombreFichier = 0
       
        SelectionFichier$ = OpenFileRequester("Choisissez un ou plusieurs fichier à charger", FichierParDefaut$, Filtre$, Filtre, #PB_Requester_MultiSelection)
        SauvegardeSelectionFichier$ = SelectionFichier$
       
        ; Précalculation du nombre de fichier
        While SelectionFichier$
          SelectionFichier$ = NextSelectedFileName()
          NombreFichier + 1
        Wend
       
        Debug NombreFichier
        SetGadgetAttribute(#ProgressBarProgression, #PB_ProgressBar_Maximum, NombreFichier)
       
        SelectionFichier$ = SauvegardeSelectionFichier$
        NombreFichier = 0
       
        While SelectionFichier$
        NomFichier$ = GetFilePart(SelectionFichier$)
        CheminFichier$ = GetPathPart(SelectionFichier$)
       
        NombreFichier + 1
       
        NombreFichiersEditeur = CountGadgetItems(#ListIcon_explorateur_fichier)
       
        For VerifficationFichiers = 0 To NombreFichiersEditeur
          NomFichiers$ = GetGadgetItemText(#ListIcon_explorateur_fichier, VerifficationFichiers)
         
          If NomFichiers$ <> SelectionFichier$
              Trouver = 0
              Continue
            Else
              Trouver = 1
              DejaTrouver = 1
              Break
            EndIf
           
          Next
         
          If Trouver = 0
            AddGadgetItem(#ListIcon_explorateur_fichier, -1, CheminFichier$ + NomFichier$, GetAssociatedFileIcon(SelectionFichier$, #SHGFI_SMALLICON))
          EndIf
         
          SelectionFichier$ = NextSelectedFileName()
         
        Wend
       
        If DejaTrouver = 1
          MessageRequester("Information", "      Certains fichiers ont été igniorer parce-qu'ils sons déjà dans la liste !", 64)
        EndIf
       
       
       
      ElseIf GadgetID = #Button_valider
        NombreFichiersEditeur = CountGadgetItems(#ListIcon_explorateur_fichier)
       
        For VerifficationFichiers = 0 To NombreFichiersEditeur
          SelectionFichier$ + GetGadgetItemText(#ListIcon_explorateur_fichier, VerifficationFichiers) + "|"
        Next
       
        CloseWindow(#Window_0)
        Event = #PB_Event_CloseWindow
        GenerationData()
       
      ElseIf GadgetID = #Button_quitter
        End
       
      EndIf
     
    ElseIf Event = #PB_Event_Menu
      If Menu = 1 ; Cocher la selection
       
        NombreFichiers = CountGadgetItems(#ListIcon_explorateur_fichier)
       
        For DecocheCase = 1 To NombreFichiers
          EtasSelection = GetGadgetItemState(#ListIcon_explorateur_fichier, DecocheCase - 1)
         
          If EtasSelection = 1
            SetGadgetItemState(#ListIcon_explorateur_fichier, DecocheCase - 1, 3)
          EndIf
         
        Next
       
      ElseIf Menu = 2 ; Décocher la selection
       
        NombreFichiers = CountGadgetItems(#ListIcon_explorateur_fichier)
       
        For DecocheCase = 1 To NombreFichiers
          EtasSelection = GetGadgetItemState(#ListIcon_explorateur_fichier, DecocheCase - 1)
         
          If EtasSelection = 3
            SetGadgetItemState(#ListIcon_explorateur_fichier, DecocheCase - 1, 1)
          EndIf
         
        Next
       
      ElseIf Menu = 3 ; Supprimer la selection
        SupprimerFichier()
       
      ElseIf Menu = 4 ; Sélectionner Tous
       
        NombreFichiers = CountGadgetItems(#ListIcon_explorateur_fichier)
       
        For SelectionCase = 0 To NombreFichiers
          EtasSelection = GetGadgetItemState(#ListIcon_explorateur_fichier, SelectionCase)
         
          If EtasSelection <> #PB_ListIcon_Selected
            SetGadgetItemState(#ListIcon_explorateur_fichier, SelectionCase, #PB_ListIcon_Selected)
          EndIf
         
        Next
       
      ElseIf Menu = 5 ; Désélectionner Tous
       
        NombreFichiers = CountGadgetItems(#ListIcon_explorateur_fichier)
       
        For SelectionCase = 0 To NombreFichiers
          EtasSelection = GetGadgetItemState(#ListIcon_explorateur_fichier, SelectionCase)
         
          If EtasSelection = #PB_ListIcon_Selected
            SetGadgetItemState(#ListIcon_explorateur_fichier, SelectionCase, 0)
          EndIf
         
        Next
       
      EndIf
     
    EndIf
   
  Until Event = #PB_Event_CloseWindow ; End of the event loop
EndProcedure

MaFenetre()
; GenerationData()


Bon certe je peut faire autrement mais je m'en fous moi, c'est pas ce que je veux faire :wink:
Moi ce qui m'interesse c'est de savoir exactement le nombre de fichier que le OpenRequester a

Mais c'est pas possible sauf comme ils ont fait voir mais moi c'est pas ce que je veux
Je veux savoir le nombre de fichier avent même d'utiliser la commande NextSelectedFileName()

Je pense que ce serais pas mal que fred ajoute ça non ?!

_________________
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php


Haut
 Profil  
 
 Sujet du message: Re: Précalculation du nombre de fichier charger
MessagePosté: Mar 13/Mar/2012 23:21 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 13/Fév/2004 0:57
Messages: 3065
Ben là où tu l'as mis, c'est bien, où est le problème?


Haut
 Profil  
 
 Sujet du message: Re: Précalculation du nombre de fichier charger
MessagePosté: Mar 13/Mar/2012 23:26 
Hors ligne

Inscription: Mer 11/Nov/2009 18:17
Messages: 1251
Localisation: Poitiers (Vienne)
Comment ça ?!

Tu as tester le code ?!

Il me faut le nombre de fichier avent d'utiliser la commande dite
pour changer le max de la barre de progression

Ensuite quand il chargera les fichier, j'ingrementerais la barre jusqu'a le max
mais si j'ai pas le max de la barre, je ne peut rien faire !

Edit:

Le schéma est le suivant :

- Choix des fichiers à chargé
- Prés calculassions du nombre de fichier ouvert grâce à OpenFileRequester pour changer le max de la barre de progression
- Chargement des fichiers et incrémentation de la barre de progression pour ainsi voir la progression actuelle (pratique notamment quand il y a de nombreux fichiers à charger) puis affichage dans le gadget (ajout du fichier)

Voilà, j'éspère avoir été asser clair cette fois-ci :) :wink:

_________________
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php


Haut
 Profil  
 
 Sujet du message: Re: Précalculation du nombre de fichier charger
MessagePosté: Mar 13/Mar/2012 23:42 
Hors ligne

Inscription: Mer 11/Nov/2009 18:17
Messages: 1251
Localisation: Poitiers (Vienne)
Ligne 396 :wink:

Code:
; Crée par monsieur dieppedalle david le 7 mars 2012

UsePNGImageDecoder()
UseJPEG2000ImageDecoder()
UseJPEGImageDecoder()
UseTGAImageDecoder()
UseTIFFImageDecoder()

Global FichierImage$ = ""
Global SelectionFichier$ = ""

Global NewList CheminFichier.s()
Global NewList NomFichier.s()
Global NewList ExtantionFichier.s()

Global NewList DataImage.s()
Global NewList ImageNoncharger.s()
Global NewList FichierIncorrecte.s()
Global NewList NumeroImage.l()

Enumeration
  #Image
  #FichierImage
  #Window_0
  #ListIcon_explorateur_fichier
  #ProgressBarProgression
  #MenuePopup
  #Button_supprimer
  #Button_ajouter
  #Button_valider
  #Button_quitter
EndEnumeration

Procedure.s ReplaceAccents(Chaine$)
 
  Chaine$=LCase(Chaine$) ; On passe tout en min histoire que ce soit propre et que le ReplaceString() dure 2 x moins longtemps
  CharToFind.s="àáâãäåßçèéêëìíîïñòóôõöÞùúûüýÿ"
  CharToReplace.s="aaaaaabceeeeiiiinooooopuuuuyy"
 
  For i = 1 To Len(CharToFind)
    ReplaceString(Chaine$, Mid(CharToFind,i,1), Mid(CharToReplace,i,1),#PB_String_InPlace, 1)
  Next
 
  ; vérif pour les caractères spéciaux passant de 1 à 2 caractères
  Chaine$ = ReplaceString(Chaine$, "œ", "oe")
  Chaine$ = ReplaceString(Chaine$, "æ", "ae")
 
  ProcedureReturn Chaine$
EndProcedure

Procedure DisableAero(WindowsID.i, State.i)
  If OpenLibrary(0, "dwmapi.dll")
   
    If State
      State = 1
    Else
      State = 2
    EndIf
   
    CallFunction(0, "DwmSetWindowAttribute", WindowsID, 2, @State, SizeOf(Long))
    CloseLibrary(0)
  EndIf
EndProcedure

Procedure GetAssociatedFileIcon(IconPath.s, IconSize)
  Protected FileInfo.SHFILEINFO
  SHGetFileInfo_(IconPath, 0, @FileInfo, SizeOf(SHFILEINFO), #SHGFI_ICON | IconSize)
  ProcedureReturn FileInfo\hIcon
EndProcedure

Procedure SupprimerFichier()
 
  NombreFichiers = CountGadgetItems(#ListIcon_explorateur_fichier)
 
  For VerifficationSelection = NombreFichiers - 1 To 0 Step - 1
    SelectionFichiers = GetGadgetItemState(#ListIcon_explorateur_fichier, VerifficationSelection)
   
    If SelectionFichiers = #PB_ListIcon_Checked Or SelectionFichiers = #PB_ListIcon_Checked | #PB_ListIcon_Selected
      Checked = 1
      Break
    EndIf
   
    Checked = 0
   
  Next
 
  If Checked = 1
    Reponce = MessageRequester("Attention", "      Vous êtes sur de vouloir supprimer ces fichiers ?", 52)
   
    If Reponce = 6
      SelectionFichiers$ = ""
     
      For VerifficationSelection = NombreFichiers - 1 To 0 Step - 1
        SelectionFichiers = GetGadgetItemState(#ListIcon_explorateur_fichier, VerifficationSelection)
        If SelectionFichiers = #PB_ListIcon_Checked Or SelectionFichiers = #PB_ListIcon_Checked | #PB_ListIcon_Selected
          RemoveGadgetItem(#ListIcon_explorateur_fichier, VerifficationSelection)
          ;Debug VerifficationSelection
        EndIf
       
      Next
     
    EndIf
   
  EndIf
 
EndProcedure

; Procedure de chargement d'une image
Procedure.l ChargementImage()
 
  Position = 0
 
  ForEach NomFichier()
   
    SelectElement(CheminFichier(), Position)
   
    FichierImage$ = CheminFichier.s() + NomFichier()
   
    If FichierImage$
     
      If FindString(LCase(GetFilePart(FichierImage$)), ".bmp", 1) Or FindString(LCase(GetFilePart(FichierImage$)), ".png", 1) Or FindString(LCase(GetFilePart(FichierImage$)), ".jpg", 1)
       
        Image = LoadImage(#PB_Any, FichierImage$)
       
        If Image <> 0
          AddElement(NumeroImage())
          NumeroImage() = Image
        Else
          AddElement(ImageNoncharger())
          ImageNoncharger() = GetFilePart(FichierImage$)
          ; MessageRequester("Erreur de chargement !", "      Impossible de charger l'image suivente: " + Chr(34) + GetFilePart(FichierImage$) + Chr(34) + " !", 16)
          ;End
        EndIf
       
      Else
        AddElement(FichierIncorrecte())
        FichierIncorrecte() = GetFilePart(FichierImage$)
        ; MessageRequester("Fichier invalide !", "      Veuillez choisir un fichier d'image invalide !", 48)
        ;End
      EndIf
     
    EndIf
   
    Position + 1
   
  Next
 
  Debug "Chargements des Images tèrminer avec succer !"
EndProcedure

Procedure.s TraitementNomImage(NomImage$)
 
  ;--------------------------------------------------------------------------------------------------------------------------------------------
  ; Recherche et suppression de l'extantion du nom du fichier de l'image
  ;--------------------------------------------------------------------------------------------------------------------------------------------
 
  For i = Len(NomImage$) To 1 Step -1
    Caractere$ = Mid(NomImage$, i, 1)
   
    If Caractere$ = "."
      NomImage$ = Mid(NomImage$, 1,  i-1)
      Break
    EndIf
   
  Next
 
  ; --------------------------------------------------------------------------------------------------------------------------------------------
  ; Convertion des caractères a accent
  ;--------------------------------------------------------------------------------------------------------------------------------------------
 
  NomImage$ = LCase(NomImage$) ; On passe tout en min histoire que ce soit propre et que le ReplaceString() dure 2 x moins longtemps
  CharToFind.s = ".àáâãäåßçèéêëìíîï ñòóôõöÞùúûüýÿ-"
  CharToReplace.s = "_aaaaaabceeeeiiii_nooooopuuuuyy_"
 
  For i  =  1 To Len(CharToFind)
    ReplaceString(NomImage$, Mid(CharToFind, i, 1), Mid(CharToReplace, i, 1), #PB_String_InPlace, 1)
  Next
 
  ; Veriffication pour les caractères spéciaux passant de 1 à 2 caractères
  NomImage$ = ReplaceString(NomImage$, Chr(156), "oe") ; "œ", Currieusement ça ne marche pas si l'on met la chaine de caractère "œ" a la place de Chr(156) !
  NomImage$ = ReplaceString(NomImage$, "æ", "ae") ; Mais ici, aucun problème a signialer, à n'i rien comprendre !
 
 
  ProcedureReturn NomImage$
 
EndProcedure

Procedure.s ConvertDataImage()
 
  Position = 0
 
  ForEach NumeroImage()
   
    SelectElement(CheminFichier(), Position)
    SelectElement(NomFichier(), Position)
   
    FichierImage$ = CheminFichier.s() + NomFichier()
   
    SelectElement(NumeroImage(), Position)
   
    AddElement(DataImage())
    DataImage() + "DataSection" + Chr(13) + Chr(10) + TraitementNomImage(GetFilePart(FichierImage$)) + ":" + Chr(13) + Chr(10)
   
    LigneCouleurHexa = 0
   
    X = 0
    Y = 0
   
    LargeurImage = ImageWidth(NumeroImage())
    HauteurImage = ImageHeight(NumeroImage())
   
    StartDrawing(ImageOutput(NumeroImage()))
    DrawingMode(#PB_2DDrawing_AlphaBlend)
   
    Repeat
     
      Couleur = Point(X, Y)
     
      If LigneCouleurHexa = 0
        AddElement(DataImage())
        DataImage() = "Data.l "
        LigneCouleurHexa + 1
      ElseIf LigneCouleurHexa < 50
        DataImage()+ "$" + Hex(Couleur, #PB_Long) + ", "
        LigneCouleurHexa + 1
      Else
        DataImage() + "$" + Hex(Couleur, #PB_Long) + Chr(13) + Chr(10)
        LigneCouleurHexa = 0
      EndIf
     
      If X <> LargeurImage - 1
        X + 1
      Else
        X = 0
        Y + 1
      EndIf
     
    Until X = LargeurImage - 1 And Y = HauteurImage - 1
   
    DataImage() = Mid(DataImage(), 1, Len(DataImage()) - 2) + Chr(13) + Chr(10)
       
    AddElement(DataImage())
    DataImage() + "EndDataSection" + Chr(13) + Chr(10) + Chr(13) + Chr(10)
   
    StopDrawing()
   
    Position + 1
  Next
 
  Debug "Générations des codes des images terminer avec succer !"
EndProcedure

Procedure GenerationData()
 
  Fichiers = 1
 
  Selection1Fichier$ = StringField(SelectionFichier$, Fichiers, "|")
  NombreFichier = 0
 
  Repeat
   
    NomFichier$ = GetFilePart(Selection1Fichier$)
    CheminFichier$ = GetPathPart(Selection1Fichier$)
    ExtensionFichier$ = GetExtensionPart(Selection1Fichier$)
   
    AddElement(CheminFichier())
    CheminFichier() = CheminFichier$
   
    AddElement(NomFichier())
    NomFichier() = NomFichier$
   
    AddElement(ExtantionFichier())
    ExtantionFichier() = ExtensionFichier$
   
    NombreFichier + 1
   
    Fichiers + 1
   
    Selection1Fichier$ = StringField(SelectionFichier$, Fichiers, "|")
   
  Until Selection1Fichier$ = ""
 
  Fichiers = 1
 
  Selection1Fichier$ = StringField(SelectionFichier$, Fichiers, "|")
  NombreFichier = 0
 
  ChargementImage()
  ConvertDataImage()
 
  If OpenFile(1, "ConvertDataImage.txt")
    FileSeek(1, 0) ; Place le pointeur au début du fichier pour tous supprimer
    TruncateFile(1) ; Supprimer tous ce qui se trouve après le pointeur d'écriture

    ForEach DataImage()
      FileSeek(1, Lof(1)) ; Place le pointeur à la fin du fichier en utilisant le résultat de Lof()
      WriteString(1, DataImage()) ; Ecrie le contenue de DataImage()
    Next
   
    CloseFile(1)
    MessageRequester("Oppération terminer avec succer !", "      Le code a été copier dans le fichier ConvertDataImage !", 64)
  Else
    Debug 0
  EndIf
 
EndProcedure

Procedure MaFenetre()
  If OpenWindow(#Window_0, 421, 212, 425, 275, "Convertisseur de fichier image vers fichier texte",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
    DisableAero(WindowID(#Window_0), 1)
   
    WindowBounds(#Window_0, 365, 250, #PB_Ignore, #PB_Ignore)
   
    ListIconGadget(#ListIcon_explorateur_fichier, 10, 10, 405, 205, "Fichiers", 9999, #PB_ListIcon_CheckBoxes | #PB_ListIcon_MultiSelect | #PB_ListIcon_GridLines)
   
    CreatePopupMenu(#MenuePopup)
    MenuItem(1, "Cocher la selection")
    MenuItem(2, "Décocher la selection")
    MenuBar()
    MenuItem(3, "Supprimer la selection")
    MenuBar()
    MenuItem(4, "Sélectionner Tous")
    MenuItem(5, "Désélectionner Tous")
   
    ButtonGadget(#Button_supprimer, 130, 235, 70, 25, "Supprimer")
    ButtonGadget(#Button_ajouter, 55, 235, 70, 25, "Ajouté")
    ButtonGadget(#Button_valider, 220, 235, 70, 25, "Valider")
    ButtonGadget(#Button_quitter, 295, 235, 70, 25, "Quitter")
   
    ProgressBarGadget(#ProgressBarProgression, 10, 217, 405, 10, 1, 100)
   
    PureRESIZE_SetGadgetResize(#ListIcon_explorateur_fichier, 1, 1, 1, 1)
   
    PureRESIZE_SetGadgetResize(#ProgressBarProgression, 1, 0, 1, 1)
    PureRESIZE_SetGadgetProportionalResize(#ProgressBarProgression, 0, 0, 1, 0)
   
    PureRESIZE_SetGadgetResize(#Button_supprimer, 1, 0, 1, 1)
    PureRESIZE_SetGadgetProportionalResize(#Button_supprimer, 1, 0, 0, 0)
   
    PureRESIZE_SetGadgetResize(#Button_ajouter, 1, 0, 1, 1)
    PureRESIZE_SetGadgetProportionalResize(#Button_ajouter, 1, 0, 0, 0)
   
    PureRESIZE_SetGadgetResize(#Button_valider, 1, 0, 1, 1)
    PureRESIZE_SetGadgetProportionalResize(#Button_valider, 1, 0, 0, 0)
   
    PureRESIZE_SetGadgetResize(#Button_quitter, 1, 0, 1, 1)
    PureRESIZE_SetGadgetProportionalResize(#Button_quitter, 1, 0, 0, 0)
   
  EndIf
 
  Repeat ; Start of the event loop
   
    Event = WaitWindowEvent() ; This line waits until an event is received from Windows
    WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
    GadgetID = EventGadget() ; Is it a gadget event?
    Menu = EventMenu()
    EventType = EventType() ; The event type
   
    If Event = #PB_Event_Gadget
     
      If GadgetID = #ListIcon_explorateur_fichier
       
        If EventType = #PB_EventType_LeftDoubleClick
          Selection = GetGadgetState(#ListIcon_explorateur_fichier)
         
          If Selection > -1
            EtasSelection = GetGadgetItemState(#ListIcon_explorateur_fichier, Selection)
           
            If EtasSelection = 1
              SetGadgetItemState(#ListIcon_explorateur_fichier, Selection, 3)
            ElseIf EtasSelection = 3
              SetGadgetItemState(#ListIcon_explorateur_fichier, Selection, 1)
            EndIf
           
          EndIf
         
        ElseIf EventType = #PB_EventType_RightClick
          DisplayPopupMenu(#MenuePopup,WindowID(#Window_0)) 
        EndIf
       
      ElseIf GadgetID = #Button_supprimer
        SupprimerFichier()
       
      ElseIf GadgetID = #Button_ajouter
        RepertoireUtilisateur$ = GetHomeDirectory()
        RepertoireUtilisateur$ + "\Bureau\"
        FichierParDefaut$ = RepertoireUtilisateur$
        Filtre$ = "Tous les fichiers (*.*)|*.*"
        Filtre  = 0
        NombreFichier = 0
       
        SelectionFichier$ = OpenFileRequester("Choisissez un ou plusieurs fichier à charger", FichierParDefaut$, Filtre$, Filtre, #PB_Requester_MultiSelection)
        SauvegardeSelectionFichier$ = SelectionFichier$
       
        ; Précalculation du nombre de fichier
       
        SetGadgetAttribute(#ProgressBarProgression, #PB_ProgressBar_Maximum, NombreFichier)
       
        SelectionFichier$ = SauvegardeSelectionFichier$
        NombreFichier = 0
       
        While SelectionFichier$
        NomFichier$ = GetFilePart(SelectionFichier$)
        CheminFichier$ = GetPathPart(SelectionFichier$)
       
        NombreFichier + 1
       
        NombreFichiersEditeur = CountGadgetItems(#ListIcon_explorateur_fichier)
       
        For VerifficationFichiers = 0 To NombreFichiersEditeur
          NomFichiers$ = GetGadgetItemText(#ListIcon_explorateur_fichier, VerifficationFichiers)
         
          If NomFichiers$ <> SelectionFichier$
              Trouver = 0
              Continue
            Else
              Trouver = 1
              DejaTrouver = 1
              Break
            EndIf
           
          Next
         
          If Trouver = 0
            AddGadgetItem(#ListIcon_explorateur_fichier, -1, CheminFichier$ + NomFichier$, GetAssociatedFileIcon(SelectionFichier$, #SHGFI_SMALLICON))
          EndIf
         
          SelectionFichier$ = NextSelectedFileName()
         
        Wend
       
        If DejaTrouver = 1
          MessageRequester("Information", "      Certains fichiers ont été igniorer parce-qu'ils sons déjà dans la liste !", 64)
        EndIf
       
       
       
      ElseIf GadgetID = #Button_valider
        NombreFichiersEditeur = CountGadgetItems(#ListIcon_explorateur_fichier)
       
        For VerifficationFichiers = 0 To NombreFichiersEditeur
          SelectionFichier$ + GetGadgetItemText(#ListIcon_explorateur_fichier, VerifficationFichiers) + "|"
        Next
       
        CloseWindow(#Window_0)
        Event = #PB_Event_CloseWindow
        GenerationData()
       
      ElseIf GadgetID = #Button_quitter
        End
       
      EndIf
     
    ElseIf Event = #PB_Event_Menu
      If Menu = 1 ; Cocher la selection
       
        NombreFichiers = CountGadgetItems(#ListIcon_explorateur_fichier)
       
        For DecocheCase = 1 To NombreFichiers
          EtasSelection = GetGadgetItemState(#ListIcon_explorateur_fichier, DecocheCase - 1)
         
          If EtasSelection = 1
            SetGadgetItemState(#ListIcon_explorateur_fichier, DecocheCase - 1, 3)
          EndIf
         
        Next
       
      ElseIf Menu = 2 ; Décocher la selection
       
        NombreFichiers = CountGadgetItems(#ListIcon_explorateur_fichier)
       
        For DecocheCase = 1 To NombreFichiers
          EtasSelection = GetGadgetItemState(#ListIcon_explorateur_fichier, DecocheCase - 1)
         
          If EtasSelection = 3
            SetGadgetItemState(#ListIcon_explorateur_fichier, DecocheCase - 1, 1)
          EndIf
         
        Next
       
      ElseIf Menu = 3 ; Supprimer la selection
        SupprimerFichier()
       
      ElseIf Menu = 4 ; Sélectionner Tous
       
        NombreFichiers = CountGadgetItems(#ListIcon_explorateur_fichier)
       
        For SelectionCase = 0 To NombreFichiers
          EtasSelection = GetGadgetItemState(#ListIcon_explorateur_fichier, SelectionCase)
         
          If EtasSelection <> #PB_ListIcon_Selected
            SetGadgetItemState(#ListIcon_explorateur_fichier, SelectionCase, #PB_ListIcon_Selected)
          EndIf
         
        Next
       
      ElseIf Menu = 5 ; Désélectionner Tous
       
        NombreFichiers = CountGadgetItems(#ListIcon_explorateur_fichier)
       
        For SelectionCase = 0 To NombreFichiers
          EtasSelection = GetGadgetItemState(#ListIcon_explorateur_fichier, SelectionCase)
         
          If EtasSelection = #PB_ListIcon_Selected
            SetGadgetItemState(#ListIcon_explorateur_fichier, SelectionCase, 0)
          EndIf
         
        Next
       
      EndIf
     
    EndIf
   
  Until Event = #PB_Event_CloseWindow ; End of the event loop
EndProcedure

MaFenetre()
; GenerationData()

_________________
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php


Haut
 Profil  
 
 Sujet du message: Re: Précalculation du nombre de fichier charger
MessagePosté: Mar 13/Mar/2012 23:46 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 13/Fév/2004 0:57
Messages: 3065
Donc si j'ai bien compris, t'aurais besoin de deux fois NextSelectedFileName()
une première fois pour calculer le nombre de fichiers et une deuxième pour les noms de fichiers

C'est bien cela?

Et en quoi ça te gène d'utilise NextSelectedFileName() pour calculer le nombre de fichiers et avoir en même temp les noms de fichiers comme te l'as montré Brossden?


Haut
 Profil  
 
 Sujet du message: Re: Précalculation du nombre de fichier charger
MessagePosté: Mar 13/Mar/2012 23:56 
Hors ligne

Inscription: Mer 11/Nov/2009 18:17
Messages: 1251
Localisation: Poitiers (Vienne)
Citation:
Donc si j'ai bien compris, t'aurais besoin de deux fois NextSelectedFileName()
une première fois pour calculer le nombre de fichiers et une deuxième pour les noms de fichiers

C'est bien cela?


Voilà c'est ça, ont va y arriver :D

Citation:
Et en quoi ça te gène d'utilise NextSelectedFileName() pour calculer le nombre de fichiers et avoir en même temp les noms de fichiers comme te l'as montré Brossden?


Décidement t'es dur de la feuille toi :lol:

Parce qu'il faut que j'initialise le maxi de la barre de progression avec le nombre de fichier !

Si je fait ce que tu dis, nom seullement j'aurais pas le nombre de fichier maxi mais en plus ça ne colle pas avec ce que je veut faire !

Si je fait comme ça et bien sa revien a faire:

- Choix des fichiers à chargé
- Chargements des fichiers et changements (Si ya 500 fichier je t'éxplique pas :mrgreen:) du max de la barre de progression en même temps que sa progression

En gros le max de la barre et la progression de la barre sera toujour egaux !

progression de la barre = 1
Max de la barre = 1

progression de la barre = 2
Max de la barre = 2

progression de la barre = 3
Max de la barre = 3

progression de la barre = 4
Max de la barre = 4

Etc.

_________________
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php


Haut
 Profil  
 
 Sujet du message: Re: Précalculation du nombre de fichier charger
MessagePosté: Mer 14/Mar/2012 0:23 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 13/Fév/2004 0:57
Messages: 3065
Tu me tortures l'esprit!

A aucun moment, je vois de SetGadgetState pour ta barre de progression, donc quand tu l'auras inclus dans ton code j'y verrais plus clair!


Haut
 Profil  
 
 Sujet du message: Re: Précalculation du nombre de fichier charger
MessagePosté: Mer 14/Mar/2012 0:47 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5212
J'aimerai aussi comprendre.
Si tu mets toujours ta barre complètement remplis lorsque tu charges, pourquoi ne l'initialises-tu pas à 2 max (par exemple) puis le logiciel compte les fichiers ensuite. Pour conclure il ajuste la valeur max de ta barre au nombre de fichiers.

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Haut
 Profil  
 
 Sujet du message: Re: Précalculation du nombre de fichier charger
MessagePosté: Mer 14/Mar/2012 10:32 
Hors ligne

Inscription: Mer 11/Nov/2009 18:17
Messages: 1251
Localisation: Poitiers (Vienne)
Citation:
Tu me tortures l'esprit!

Nan sans blague :lol:
Désoler mais ça va finir par entrer tu va voir :mrgreen:

Citation:
A aucun moment, je vois de SetGadgetState pour ta barre de progression, donc quand tu l'auras inclus dans ton code j'y verrais plus clair!

Afelou mon cher, Afelou :mrgreen:

Mais si regarde bien...

Bin non ta résond ya rien :oops: (Ce fait tous petit) excuse-moi :wink:

Code:
; Crée par monsieur dieppedalle david le 7 mars 2012

UsePNGImageDecoder()
UseJPEG2000ImageDecoder()
UseJPEGImageDecoder()
UseTGAImageDecoder()
UseTIFFImageDecoder()

Global FichierImage$ = ""
Global SelectionFichier$ = ""

Global NewList CheminFichier.s()
Global NewList NomFichier.s()
Global NewList ExtantionFichier.s()

Global NewList DataImage.s()
Global NewList ImageNoncharger.s()
Global NewList FichierIncorrecte.s()
Global NewList NumeroImage.l()

Enumeration
  #Image
  #FichierImage
  #Window_0
  #ListIcon_explorateur_fichier
  #ProgressBarProgression
  #MenuePopup
  #Button_supprimer
  #Button_ajouter
  #Button_valider
  #Button_quitter
EndEnumeration

Procedure.s ReplaceAccents(Chaine$)
 
  Chaine$=LCase(Chaine$) ; On passe tout en min histoire que ce soit propre et que le ReplaceString() dure 2 x moins longtemps
  CharToFind.s="àáâãäåßçèéêëìíîïñòóôõöÞùúûüýÿ"
  CharToReplace.s="aaaaaabceeeeiiiinooooopuuuuyy"
 
  For i = 1 To Len(CharToFind)
    ReplaceString(Chaine$, Mid(CharToFind,i,1), Mid(CharToReplace,i,1),#PB_String_InPlace, 1)
  Next
 
  ; vérif pour les caractères spéciaux passant de 1 à 2 caractères
  Chaine$ = ReplaceString(Chaine$, "œ", "oe")
  Chaine$ = ReplaceString(Chaine$, "æ", "ae")
 
  ProcedureReturn Chaine$
EndProcedure

Procedure DisableAero(WindowsID.i, State.i)
  If OpenLibrary(0, "dwmapi.dll")
   
    If State
      State = 1
    Else
      State = 2
    EndIf
   
    CallFunction(0, "DwmSetWindowAttribute", WindowsID, 2, @State, SizeOf(Long))
    CloseLibrary(0)
  EndIf
EndProcedure

Procedure GetAssociatedFileIcon(IconPath.s, IconSize)
  Protected FileInfo.SHFILEINFO
  SHGetFileInfo_(IconPath, 0, @FileInfo, SizeOf(SHFILEINFO), #SHGFI_ICON | IconSize)
  ProcedureReturn FileInfo\hIcon
EndProcedure

Procedure SupprimerFichier()
 
  NombreFichiers = CountGadgetItems(#ListIcon_explorateur_fichier)
 
  For VerifficationSelection = NombreFichiers - 1 To 0 Step - 1
    SelectionFichiers = GetGadgetItemState(#ListIcon_explorateur_fichier, VerifficationSelection)
   
    If SelectionFichiers = #PB_ListIcon_Checked Or SelectionFichiers = #PB_ListIcon_Checked | #PB_ListIcon_Selected
      Checked = 1
      Break
    EndIf
   
    Checked = 0
   
  Next
 
  If Checked = 1
    Reponce = MessageRequester("Attention", "      Vous êtes sur de vouloir supprimer ces fichiers ?", 52)
   
    If Reponce = 6
      SelectionFichiers$ = ""
     
      For VerifficationSelection = NombreFichiers - 1 To 0 Step - 1
        SelectionFichiers = GetGadgetItemState(#ListIcon_explorateur_fichier, VerifficationSelection)
        If SelectionFichiers = #PB_ListIcon_Checked Or SelectionFichiers = #PB_ListIcon_Checked | #PB_ListIcon_Selected
          RemoveGadgetItem(#ListIcon_explorateur_fichier, VerifficationSelection)
          ;Debug VerifficationSelection
        EndIf
       
      Next
     
    EndIf
   
  EndIf
 
EndProcedure

; Procedure de chargement d'une image
Procedure.l ChargementImage()
 
  Position = 0
 
  ForEach NomFichier()
   
    SelectElement(CheminFichier(), Position)
   
    FichierImage$ = CheminFichier.s() + NomFichier()
   
    If FichierImage$
     
      If FindString(LCase(GetFilePart(FichierImage$)), ".bmp", 1) Or FindString(LCase(GetFilePart(FichierImage$)), ".png", 1) Or FindString(LCase(GetFilePart(FichierImage$)), ".jpg", 1)
       
        Image = LoadImage(#PB_Any, FichierImage$)
       
        If Image <> 0
          AddElement(NumeroImage())
          NumeroImage() = Image
        Else
          AddElement(ImageNoncharger())
          ImageNoncharger() = GetFilePart(FichierImage$)
          ; MessageRequester("Erreur de chargement !", "      Impossible de charger l'image suivente: " + Chr(34) + GetFilePart(FichierImage$) + Chr(34) + " !", 16)
          ;End
        EndIf
       
      Else
        AddElement(FichierIncorrecte())
        FichierIncorrecte() = GetFilePart(FichierImage$)
        ; MessageRequester("Fichier invalide !", "      Veuillez choisir un fichier d'image invalide !", 48)
        ;End
      EndIf
     
    EndIf
   
    Position + 1
   
  Next
 
  Debug "Chargements des Images tèrminer avec succer !"
EndProcedure

Procedure.s TraitementNomImage(NomImage$)
 
  ;--------------------------------------------------------------------------------------------------------------------------------------------
  ; Recherche et suppression de l'extantion du nom du fichier de l'image
  ;--------------------------------------------------------------------------------------------------------------------------------------------
 
  For i = Len(NomImage$) To 1 Step -1
    Caractere$ = Mid(NomImage$, i, 1)
   
    If Caractere$ = "."
      NomImage$ = Mid(NomImage$, 1,  i-1)
      Break
    EndIf
   
  Next
 
  ; --------------------------------------------------------------------------------------------------------------------------------------------
  ; Convertion des caractères a accent
  ;--------------------------------------------------------------------------------------------------------------------------------------------
 
  NomImage$ = LCase(NomImage$) ; On passe tout en min histoire que ce soit propre et que le ReplaceString() dure 2 x moins longtemps
  CharToFind.s = ".àáâãäåßçèéêëìíîï ñòóôõöÞùúûüýÿ-"
  CharToReplace.s = "_aaaaaabceeeeiiii_nooooopuuuuyy_"
 
  For i  =  1 To Len(CharToFind)
    ReplaceString(NomImage$, Mid(CharToFind, i, 1), Mid(CharToReplace, i, 1), #PB_String_InPlace, 1)
  Next
 
  ; Veriffication pour les caractères spéciaux passant de 1 à 2 caractères
  NomImage$ = ReplaceString(NomImage$, Chr(156), "oe") ; "œ", Currieusement ça ne marche pas si l'on met la chaine de caractère "œ" a la place de Chr(156) !
  NomImage$ = ReplaceString(NomImage$, "æ", "ae") ; Mais ici, aucun problème a signialer, à n'i rien comprendre !
 
 
  ProcedureReturn NomImage$
 
EndProcedure

Procedure.s ConvertDataImage()
 
  Position = 0
 
  ForEach NumeroImage()
   
    SelectElement(CheminFichier(), Position)
    SelectElement(NomFichier(), Position)
   
    FichierImage$ = CheminFichier.s() + NomFichier()
   
    SelectElement(NumeroImage(), Position)
   
    AddElement(DataImage())
    DataImage() + "DataSection" + Chr(13) + Chr(10) + TraitementNomImage(GetFilePart(FichierImage$)) + ":" + Chr(13) + Chr(10)
   
    LigneCouleurHexa = 0
   
    X = 0
    Y = 0
   
    LargeurImage = ImageWidth(NumeroImage())
    HauteurImage = ImageHeight(NumeroImage())
   
    StartDrawing(ImageOutput(NumeroImage()))
    DrawingMode(#PB_2DDrawing_AlphaBlend)
   
    Repeat
     
      Couleur = Point(X, Y)
     
      If LigneCouleurHexa = 0
        AddElement(DataImage())
        DataImage() = "Data.l "
        LigneCouleurHexa + 1
      ElseIf LigneCouleurHexa < 50
        DataImage()+ "$" + Hex(Couleur, #PB_Long) + ", "
        LigneCouleurHexa + 1
      Else
        DataImage() + "$" + Hex(Couleur, #PB_Long) + Chr(13) + Chr(10)
        LigneCouleurHexa = 0
      EndIf
     
      If X <> LargeurImage - 1
        X + 1
      Else
        X = 0
        Y + 1
      EndIf
     
    Until X = LargeurImage - 1 And Y = HauteurImage - 1
   
    DataImage() = Mid(DataImage(), 1, Len(DataImage()) - 2) + Chr(13) + Chr(10)
       
    AddElement(DataImage())
    DataImage() + "EndDataSection" + Chr(13) + Chr(10) + Chr(13) + Chr(10)
   
    StopDrawing()
   
    Position + 1
  Next
 
  Debug "Générations des codes des images terminer avec succer !"
EndProcedure

Procedure GenerationData()
 
  Fichiers = 1
 
  Selection1Fichier$ = StringField(SelectionFichier$, Fichiers, "|")
  NombreFichier = 0
 
  Repeat
   
    NomFichier$ = GetFilePart(Selection1Fichier$)
    CheminFichier$ = GetPathPart(Selection1Fichier$)
    ExtensionFichier$ = GetExtensionPart(Selection1Fichier$)
   
    AddElement(CheminFichier())
    CheminFichier() = CheminFichier$
   
    AddElement(NomFichier())
    NomFichier() = NomFichier$
   
    AddElement(ExtantionFichier())
    ExtantionFichier() = ExtensionFichier$
   
    NombreFichier + 1
   
    Fichiers + 1
   
    Selection1Fichier$ = StringField(SelectionFichier$, Fichiers, "|")
   
  Until Selection1Fichier$ = ""
 
  Fichiers = 1
 
  Selection1Fichier$ = StringField(SelectionFichier$, Fichiers, "|")
  NombreFichier = 0
 
  ChargementImage()
  ConvertDataImage()
 
  If OpenFile(1, "ConvertDataImage.txt")
    FileSeek(1, 0) ; Place le pointeur au début du fichier pour tous supprimer
    TruncateFile(1) ; Supprimer tous ce qui se trouve après le pointeur d'écriture

    ForEach DataImage()
      FileSeek(1, Lof(1)) ; Place le pointeur à la fin du fichier en utilisant le résultat de Lof()
      WriteString(1, DataImage()) ; Ecrie le contenue de DataImage()
    Next
   
    CloseFile(1)
    MessageRequester("Oppération terminer avec succer !", "      Le code a été copier dans le fichier ConvertDataImage !", 64)
  Else
    Debug 0
  EndIf
 
EndProcedure

Procedure MaFenetre()
  If OpenWindow(#Window_0, 421, 212, 425, 275, "Convertisseur de fichier image vers fichier texte",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
    DisableAero(WindowID(#Window_0), 1)
   
    WindowBounds(#Window_0, 365, 250, #PB_Ignore, #PB_Ignore)
   
    ListIconGadget(#ListIcon_explorateur_fichier, 10, 10, 405, 205, "Fichiers", 9999, #PB_ListIcon_CheckBoxes | #PB_ListIcon_MultiSelect | #PB_ListIcon_GridLines)
   
    CreatePopupMenu(#MenuePopup)
    MenuItem(1, "Cocher la selection")
    MenuItem(2, "Décocher la selection")
    MenuBar()
    MenuItem(3, "Supprimer la selection")
    MenuBar()
    MenuItem(4, "Sélectionner Tous")
    MenuItem(5, "Désélectionner Tous")
   
    ButtonGadget(#Button_supprimer, 130, 235, 70, 25, "Supprimer")
    ButtonGadget(#Button_ajouter, 55, 235, 70, 25, "Ajouté")
    ButtonGadget(#Button_valider, 220, 235, 70, 25, "Valider")
    ButtonGadget(#Button_quitter, 295, 235, 70, 25, "Quitter")
   
    ProgressBarGadget(#ProgressBarProgression, 10, 217, 405, 10, 1, 100)
   
    PureRESIZE_SetGadgetResize(#ListIcon_explorateur_fichier, 1, 1, 1, 1)
   
    PureRESIZE_SetGadgetResize(#ProgressBarProgression, 1, 0, 1, 1)
    PureRESIZE_SetGadgetProportionalResize(#ProgressBarProgression, 0, 0, 1, 0)
   
    PureRESIZE_SetGadgetResize(#Button_supprimer, 1, 0, 1, 1)
    PureRESIZE_SetGadgetProportionalResize(#Button_supprimer, 1, 0, 0, 0)
   
    PureRESIZE_SetGadgetResize(#Button_ajouter, 1, 0, 1, 1)
    PureRESIZE_SetGadgetProportionalResize(#Button_ajouter, 1, 0, 0, 0)
   
    PureRESIZE_SetGadgetResize(#Button_valider, 1, 0, 1, 1)
    PureRESIZE_SetGadgetProportionalResize(#Button_valider, 1, 0, 0, 0)
   
    PureRESIZE_SetGadgetResize(#Button_quitter, 1, 0, 1, 1)
    PureRESIZE_SetGadgetProportionalResize(#Button_quitter, 1, 0, 0, 0)
   
  EndIf
 
  Repeat ; Start of the event loop
   
    Event = WaitWindowEvent() ; This line waits until an event is received from Windows
    WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
    GadgetID = EventGadget() ; Is it a gadget event?
    Menu = EventMenu()
    EventType = EventType() ; The event type
   
    If Event = #PB_Event_Gadget
     
      If GadgetID = #ListIcon_explorateur_fichier
       
        If EventType = #PB_EventType_LeftDoubleClick
          Selection = GetGadgetState(#ListIcon_explorateur_fichier)
         
          If Selection > -1
            EtasSelection = GetGadgetItemState(#ListIcon_explorateur_fichier, Selection)
           
            If EtasSelection = 1
              SetGadgetItemState(#ListIcon_explorateur_fichier, Selection, 3)
            ElseIf EtasSelection = 3
              SetGadgetItemState(#ListIcon_explorateur_fichier, Selection, 1)
            EndIf
           
          EndIf
         
        ElseIf EventType = #PB_EventType_RightClick
          DisplayPopupMenu(#MenuePopup,WindowID(#Window_0)) 
        EndIf
       
      ElseIf GadgetID = #Button_supprimer
        SupprimerFichier()
       
      ElseIf GadgetID = #Button_ajouter
        RepertoireUtilisateur$ = GetHomeDirectory()
        RepertoireUtilisateur$ + "\Bureau\"
        FichierParDefaut$ = RepertoireUtilisateur$
        Filtre$ = "Tous les fichiers (*.*)|*.*"
        Filtre  = 0
        NombreFichier = 0
       
        SelectionFichier$ = OpenFileRequester("Choisissez un ou plusieurs fichier à charger", FichierParDefaut$, Filtre$, Filtre, #PB_Requester_MultiSelection)
        SauvegardeSelectionFichier$ = SelectionFichier$
       
        ; Précalculation du nombre de fichier
       
        ; Ici je ne connais pas le nombre de fichier !!!!!
        ; Donc ça en gros sa sert a rien lol:
       
        ;----------------------------------------------------------------------------------
        SetGadgetAttribute(#ProgressBarProgression, #PB_ProgressBar_Maximum, NombreFichier)
        ;----------------------------------------------------------------------------------
       
        SelectionFichier$ = SauvegardeSelectionFichier$
        NombreFichier = 0
       
        While SelectionFichier$
        NomFichier$ = GetFilePart(SelectionFichier$)
        CheminFichier$ = GetPathPart(SelectionFichier$)
       
        NombreFichier + 1
       
        NombreFichiersEditeur = CountGadgetItems(#ListIcon_explorateur_fichier)
       
        For VerifficationFichiers = 0 To NombreFichiersEditeur
          NomFichiers$ = GetGadgetItemText(#ListIcon_explorateur_fichier, VerifficationFichiers)
         
          If NomFichiers$ <> SelectionFichier$
              Trouver = 0
              Continue
            Else
              Trouver = 1
              DejaTrouver = 1
              Break
            EndIf
           
          Next
         
          If Trouver = 0
            Progression + 1
            AddGadgetItem(#ListIcon_explorateur_fichier, -1, CheminFichier$ + NomFichier$, GetAssociatedFileIcon(SelectionFichier$, #SHGFI_SMALLICON))
            SetGadgetState(#ProgressBarProgression, Progression)
          EndIf
         
          SelectionFichier$ = NextSelectedFileName()
         
        Wend
       
        If DejaTrouver = 1
          MessageRequester("Information", "      Certains fichiers ont été igniorer parce-qu'ils sons déjà dans la liste !", 64)
        EndIf
       
       
       
      ElseIf GadgetID = #Button_valider
        NombreFichiersEditeur = CountGadgetItems(#ListIcon_explorateur_fichier)
       
        For VerifficationFichiers = 0 To NombreFichiersEditeur
          SelectionFichier$ + GetGadgetItemText(#ListIcon_explorateur_fichier, VerifficationFichiers) + "|"
        Next
       
        CloseWindow(#Window_0)
        Event = #PB_Event_CloseWindow
        GenerationData()
       
      ElseIf GadgetID = #Button_quitter
        End
       
      EndIf
     
    ElseIf Event = #PB_Event_Menu
      If Menu = 1 ; Cocher la selection
       
        NombreFichiers = CountGadgetItems(#ListIcon_explorateur_fichier)
       
        For DecocheCase = 1 To NombreFichiers
          EtasSelection = GetGadgetItemState(#ListIcon_explorateur_fichier, DecocheCase - 1)
         
          If EtasSelection = 1
            SetGadgetItemState(#ListIcon_explorateur_fichier, DecocheCase - 1, 3)
          EndIf
         
        Next
       
      ElseIf Menu = 2 ; Décocher la selection
       
        NombreFichiers = CountGadgetItems(#ListIcon_explorateur_fichier)
       
        For DecocheCase = 1 To NombreFichiers
          EtasSelection = GetGadgetItemState(#ListIcon_explorateur_fichier, DecocheCase - 1)
         
          If EtasSelection = 3
            SetGadgetItemState(#ListIcon_explorateur_fichier, DecocheCase - 1, 1)
          EndIf
         
        Next
       
      ElseIf Menu = 3 ; Supprimer la selection
        SupprimerFichier()
       
      ElseIf Menu = 4 ; Sélectionner Tous
       
        NombreFichiers = CountGadgetItems(#ListIcon_explorateur_fichier)
       
        For SelectionCase = 0 To NombreFichiers
          EtasSelection = GetGadgetItemState(#ListIcon_explorateur_fichier, SelectionCase)
         
          If EtasSelection <> #PB_ListIcon_Selected
            SetGadgetItemState(#ListIcon_explorateur_fichier, SelectionCase, #PB_ListIcon_Selected)
          EndIf
         
        Next
       
      ElseIf Menu = 5 ; Désélectionner Tous
       
        NombreFichiers = CountGadgetItems(#ListIcon_explorateur_fichier)
       
        For SelectionCase = 0 To NombreFichiers
          EtasSelection = GetGadgetItemState(#ListIcon_explorateur_fichier, SelectionCase)
         
          If EtasSelection = #PB_ListIcon_Selected
            SetGadgetItemState(#ListIcon_explorateur_fichier, SelectionCase, 0)
          EndIf
         
        Next
       
      EndIf
     
    EndIf
   
  Until Event = #PB_Event_CloseWindow ; End of the event loop
EndProcedure

MaFenetre()
; GenerationData()


Citation:
J'aimerai aussi comprendre.
Si tu mets toujours ta barre complètement remplis lorsque tu charges, pourquoi ne l'initialises-tu pas à 2 max (par exemple) puis le logiciel compte les fichiers ensuite.

RHAAAAAAAA !, Je sens que je vais craquer :? :lol:
Mon chers Ar'S, comment veut tu que j'initialise le max de la barre si j'ai pas le nombre de fichiers :lol:
Là, j'ai mis ça comme ça car pour le momment je ne sais pas le nombre max de fichier, en gros ça sert a rien pour le momment :wink:
Citation:
Pour conclure il ajuste la valeur max de ta barre au nombre de fichiers.

C'est bien ce que je disais:
Citation:
En gros le max de la barre et la progression de la barre sera toujour egaux !

progression de la barre = 1
Max de la barre = 1

progression de la barre = 2
Max de la barre = 2

progression de la barre = 3
Max de la barre = 3

progression de la barre = 4
Max de la barre = 4

Etc.


Edit:

Bon sinon ont va prendre le problème dans un autre sens:

Je voudrait que vous me fassiez un exemple:

Un OpenFileRequester
Un genre de ListIcon ou un truc du genre

Ensuite quand le programme va charger les fichiers, une barre de progression se remplira au fur et a mesure que les fichiers apparais dans la liste
Mais attention, il faudra au préalable calculer le nombre de fichiers qu'il y a avec OpenFileRequester pour initialiser le maxi de la barre de progression

Et à chaque fois que le programme chargera un fichier et bien la barre de progression s'ingrémentera de 1

Aller au boulot :lol:

_________________
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php


Haut
 Profil  
 
 Sujet du message: Re: Précalculation du nombre de fichier charger
MessagePosté: Mer 14/Mar/2012 11:36 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5212
Citation:
RHAAAAAAAA !, Je sens que je vais craquer :? :lol:

C'est l’hôpital qui s'enfile gentiment la charité :?:

Citation:
Mon chers Ar-S, comment veuX tu que j'initialise le max de la barre si j'ai pas le nombre de fichiers :lol:
Là, j'ai mis ça comme ça car pour le moment je ne sais pas le nombre max de fichier, en gros ça sert a rien pour le moment :wink:


Code:
Global NewList Fichier.s()
 
Procedure CountOpenFileReq()
  ClearList(Fichier())
  NomFichier$ = OpenFileRequester("Choisissez quelques fichiers","","",0, #PB_Requester_MultiSelection)
  While NomFichier$
    NomFichier$ = NextSelectedFileName()
    AddElement(Fichier())
    Fichier() = NomFichier$
  Wend
  ProcedureReturn ListSize(Fichier())
EndProcedure


If OpenWindow(0, 0, 0, 320, 200, "TrackBarGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  MaxFichier = CountOpenFileReq()
  TrackBarGadget(0, 10,  40, 250, 20, 0, MaxFichier)
  TextGadget(1,0,10,200,20,"0")
  ResetList(Fichier())
 
  ForEach Fichier()
   
    NumEnCours = ListIndex(Fichier())+1
    Delay (1000)
    SetGadgetState(0, NumEnCours)
    SetGadgetText(1, "Fichier : "+ Str(NumEnCours))
 
  Next

  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf



Tu veux faire quoi précisément ? ça ?

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Haut
 Profil  
 
 Sujet du message: Re: Précalculation du nombre de fichier charger
MessagePosté: Mer 14/Mar/2012 11:51 
Hors ligne

Inscription: Dim 18/Avr/2004 15:04
Messages: 1485
Localisation: sud de la france
davyd il faut arreter un peu le 5 contre 1 de temps en temps

_________________
Jbernard13


Haut
 Profil  
 
 Sujet du message: Re: Précalculation du nombre de fichier charger
MessagePosté: Mer 14/Mar/2012 12:00 
Hors ligne

Inscription: Mer 11/Nov/2009 18:17
Messages: 1251
Localisation: Poitiers (Vienne)
M'ouais, ok, je pense qu'avec ça je devrais trouver un moyen d'y arriver
je vais voir ça et je vous tien au courent, merci Ar'S pour ton aide :) :wink:

Note: Je ne sais pas si c'est vraiment ce que je voulais mais vue qu'on ne peut pas
compter le nombre de fichier avec OpenFileRequester comme je voulais...

Je pense que ta solution est pas mal Ar'S, reste plus qu'à modifier le code :)
Encore merci a toi :wink:

Jbernard13 que veut tu dire par là au juste :|
Citation:
davyd il faut arreter un peu le 5 contre 1 de temps en temps

Je pense que vu que je ne trouvais pas la solution
J'ai pas mal pataugé alors que Ar'S ma trouver une solution !

Nous verrons si j'arrive à m'en accommoder :wink:

Tien tans que j'y suis, je te ferais très gentiment remarquer Jbernard13
que toi tu pioche, tu pioche, mais tu ne poste jamais rien, tu n'aide pas non plus dans les codes
alors les réfléctions, enfin tu comprends quoi :wink:

Enfin j'me trompe peut être hein !

_________________
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php


Haut
 Profil  
 
 Sujet du message: Re: Précalculation du nombre de fichier charger
MessagePosté: Mer 14/Mar/2012 12:11 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5212
Citation:
Note: Je ne sais pas si c'est vraiment ce que je voulais mais vue qu'on ne peut pas
compter le nombre de fichier avec OpenFileRequester comme je voulais...


Tu plaisantes ?
CountOpenFileReq() remplace (intègre) ton OpenfileRequester(), et il renvoie le nombre de fichiers sélectionnés.
Code:
MaxFichier = CountOpenFileReq()


En plus tu n'as pas à re-brasser du code pour obtenir le nom des fichiers vu qu'ils sont stockés dans Fichier()

P.S : Le delay n'est là que pour te montrer que le chargement se passe bien et que la barre est initialisée au Nbr de fichiers.

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 44 messages ]  Aller à la page Précédente  1, 2, 3  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot] et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye