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

Pourquoi t'as besoin de connaitre le nombre de fichier avant NextSelectedFileName()?dayvid a écrit :Bon c pas ça que je demande moi![]()
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 !
Code : Tout sélectionner
; 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()
Code : Tout sélectionner
; 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()
Voilà c'est ça, ont va y arriverDonc 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?
Décidement t'es dur de la feuille toiEt 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?
Nan sans blagueTu me tortures l'esprit!
Afelou mon cher, AfelouA 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!
Code : Tout sélectionner
; 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()
RHAAAAAAAA !, Je sens que je vais craquerJ'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.
C'est bien ce que je disais:Pour conclure il ajuste la valeur max de ta barre au nombre de fichiers.
Edit: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.
C'est l’hôpital qui s'enfile gentiment la charitéRHAAAAAAAA !, Je sens que je vais craquer![]()
Mon chers Ar-S, comment veuX tu que j'initialise le max de la barre si j'ai pas le nombre de fichiers
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![]()
Code : Tout sélectionner
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
Je pense que vu que je ne trouvais pas la solutiondavyd il faut arreter un peu le 5 contre 1 de temps en temps
Tu plaisantes ?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...
Code : Tout sélectionner
MaxFichier = CountOpenFileReq()