Freak a posté un code il y a 2 ans ici
http://forums.purebasic.com/english/vie ... bjectsarea
_PB_File_ObjectsNumber --> c'est le nombre de fichiers
_PB_File_ObjectsArea --> c'est la zone ou est stokée le handle de chaque fichier le cas échéant qui correspond à la structure
Code : Tout sélectionner
Structure
PB_FileStructure
File ; OS File pointer (HANDLE)
EndStructure
_PB_File_Current --> comme le dit la doc c'est le handle du fichier courant
Le code de Freak compare le handle courant au handle de l'ensemble des handles de la zone _PB_File_ObjectsArea
S'il y a égalité, le compteur de boucle vaut l'id static de PB
Même si aucun fichier n'est ouvert, le nombre de fichiers n'est pas nul (chez moi 10), je suppose que Fred a alloué de la place pour au moins 10 fichiers (en fait 10 long correspondant aux 10 handles) et en réalloue seulement si l'id static est > à 9 (indices de 0 à 9) d'ou l'intérêt de commencer avec l'indice 0 et de continuer en incrémentant de 1
Pour le code de Freak, moi je rajouterai un break pour terminer plus rapidement dans la boucle for comme ceci
Code : Tout sélectionner
If *Pointer\l = Current And *Pointer\l <> 0
Result = Number
Break ; <---------- ici
EndIf