Page 1 sur 1

Structure et recherche

Publié : dim. 26/févr./2006 21:50
par fd
Bonjour,

J'ai créé une structure avec :
Structure Structure02
Identifiant.s
Nom.s
Prenom.s
EndStructure

Global NewList Login.Structure02()

Je souhaite retrouver la valeur de nom et prenom pour une valeur de identifiant donnée, y a t-il une autre méthode qu'une boucle de ce type qui m'oblige à parcourir tous les éléments ? (du genre FindElement)

N = 0
While Login(N)\Identifiant = User
N+1
Wend
SelectElement(Login(), N)

Merci de vos idées

Publié : lun. 27/févr./2006 6:33
par AWEAR
Je ne crois pas qu'il existe une fonction comme tu le souhaite. Cependant, il me semble que la librairie sur les listes chainées est très optimisée.
De plus, au lieu d'utiliser ta boucle while - wend (qui me semble fausse à ce niveau : Login(N)\Identifiant ), tu peux faire comme ca :

ForEach login()
If login()\identifiant = "truc1"
Break
EndIf
Next

ansi, dès que identifiant vaut "truc1", on sort de la boucle, et l'élément est déja sélectionné.

Publié : lun. 27/févr./2006 8:20
par comtois
tu peux déjà faire comme te le suggère AWEAR.Si tu n'as pas trop de données à traiter c'est très rapide.

Ou si tu as beaucoup de données à traiter , tu peux aussi chercher des infos sur les tables de hachage. L'accès aux données s'éxécute à temps constant, autrement dit ça permet de faire des recherches à temps constant.

Publié : lun. 27/févr./2006 12:33
par nico
La solution la plus simple serait de trier tes données avec sort(), puis tu prends des points de référence, ce qui permettra de faire des recherches au plus près de la valeur recherchée.