Bonjour,
J'ai aussi remodelé l'exemple pour mon usage, avec non pas une sélection AM, PM mais heure début et heure fin.
Un avis, à la structure stItem, tu peux ajouter une variable numérique permettant de savoir combien de stPlage elle contient.
A chaque fois que tu ajoute une plage, ( méthode ajouteplace ), tu incrémentes la variable de sItem de 1
Pour la méthode bconfit, il suffit de lire les Item et d'incrémenter un compteur. Dès que le n° Item correspond au bon numméro, tu peux sortir de la 1er bouble et attaquer la boucle de bConfilt: POUR i=1 A Dimension(:TPlage) à remplacer par
POUR i=compteur A Dimension(:TPlage) SI :TPlage[i]:NUMEROIT=:TPlage[nPlage]:NUMEROIT ALORS ... SINON SORTIR ( pas la peine d'aller plus loin, les plages sont trié dans la méthode TRIEPLAGES par NUMEROIT )
ou alors
dans BConfilt Trouve est un boleen = FAUX POUR i=1 A Dimension(:TPlage) SI :TPlage[i]:NUMEROIT=:TPlage[nPlage]:NUMEROIT ALORS trouve = vrai SINON si trouve = VRAI alors sortir ( idem, les plage sont trié par NUMEROIT par TRIEPLAGE, dont pas la peine de voir la suite, surtout si ton BConflit cherche à partir du 3ème ITEM, par contre, si tu teste dans les deniers, tu aura la même lenteur) FIN
CORDIALEMENT,
C.AUBRY SI |