Publié : dim. 19/déc./2004 21:03
Moi aussi j'suis nul et pourtant je me bats pas avec un écrase patate breveté !
Forums PureBasic - Français
http://forums.purebasic.com/french/
Code : Tout sélectionner
Structure BIDON
Baba.l[201]
Bibi.l[201]
Bobo.s[201]
EndStructure
Code : Tout sélectionner
ProcedureDLL AppelBidon(Valeur.l, *test.BIDON)
For i = 0 To 200
*test\Baba[i] = Valeur * i
*test\Bibi[i] = Valeur * (i * 5)
*test\Bobo[i] = "Chaine " + Str(Valeur * i)
Next
EndProcedure
Code : Tout sélectionner
Structure BIDON
Baba.l[201]
Bibi.l[201]
Bobo.s[201]
EndStructure
If OpenLibrary(0,"MaDll.dll")
CallFunction(0,"AppelBidon", 15, @Valeur.BIDON)
For i = 0 To 200
Debug Str(Valeur\Baba[i]) + " --- " + Str(Valeur\Bibi[i]) + " " + Valeur\Bobo[i]
Next
CloseLibrary(0)
EndIf
Code : Tout sélectionner
; Auteur : Le Soldat Inconnu
; Version de PB : 3.9
;
; Explication du programme :
#MaxFichier = 100
#MaxDossier = 50
Dim Dossier.s(#MaxFichier, #MaxDossier)
Dim Temp.s(#MaxFichier)
Structure InfoExplorer
Dossier.s
Type.l
EndStructure
NewList Explorer.InfoExplorer()
Global Position
Position = -1
Enumeration
#Arbre
#Explorer
EndEnumeration
#Arbre_X = 250
#Arbre_Y = 300
#Win_X = #Arbre_X
#Win_Y = #Arbre_Y
Procedure ListeDossier(Numero, Dossier.s, PositionDepart)
If n > #MaxDossier
MessageRequester("Erreur", "Dépassement de capacité des dossiers", 0)
End
EndIf
If ExamineDirectory(Numero, Dossier, "*.*")
;- Analyse du contenu du dossier
Cpt_Dossier = -1
Repeat
FileType = NextDirectoryEntry()
Nom.s = DirectoryEntryName()
If FileType = 2 And Nom <> "." And Nom <> ".."
Cpt_Dossier + 1
If Cpt_Dossier > #MaxFichier
MessageRequester("Erreur", "Dépassement de capacité des fichiers", 0)
End
EndIf
Temp(Cpt_Dossier) = Nom
EndIf
Until FileType = 0
;- Triage des fichiers et dossiers
SortArray(Temp(), 2, 0, Cpt_Dossier)
; Transfert
For n = 0 To Cpt_Dossier
Dossier(n, Numero) = Temp(n)
Next
;- Affichage
For n = 0 To Cpt_Dossier
Position + 1
AddElement(Explorer())
Explorer()\Dossier = Dossier + Dossier(n, Numero) + "\"
Explorer()\Type = Numero
AddGadgetItem(#Arbre, Position, Dossier(n, Numero))
OpenTreeGadgetNode(#Arbre)
ListeDossier(Numero + 1, Dossier + Dossier(n, Numero) + "\", Position)
CloseTreeGadgetNode(#Arbre)
Next
; On ouvre le noeud
SetGadgetItemState(#Arbre, PositionDepart, #PB_Tree_Expanded)
EndIf
EndProcedure
;/ Début du programme
;- Création de la fenêtre et de la GadgetList
If OpenWindow(0, 0, 0, #Win_X, #Win_Y, #PB_Window_Invisible | #PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_MinimizeGadget, "Logithèque") = 0 Or CreateGadgetList(WindowID()) = 0
End
EndIf
;- Gadgets
TreeGadget(#Arbre, 0, 0, #Arbre_X, #Arbre_Y, #PB_Tree_AlwaysShowSelection)
ListeDossier(0, "", 0)
HideWindow(0, 0)
Repeat
Event = WaitWindowEvent()
Until Event = #PB_EventCloseWindow
Fred a écrit :je pense que les tableaux/listes pourront etre locaux avec PB v4.0. C'est une grosse limitation à mon avis.
C'est une grosse limitation à mon avis.
je pense que les tableaux/listes pourront etre locaux avec PB v4.0. C'est une grosse limitation à mon avis.
je ne pense pas que Fred parle de la possibilitée , mais de l'utilitée !Ca ne peut être une limitation, dans la mesure où on a le choix entre global et local