J’ai une liste Q-LIST-1 de 100 occurrences :
Cette liste contiennent soit les client ou les conjoint ou bien client + les conjoint
Chacun des deux personne peut prendre prends 3 valeurs max : 10, 20 et 30
------------------------------------------------
-----ID------|----Valeur----
-----------------------------------------------
Id client-1 --| 10
-----------------------------------------------
Id conjoint-1| 10
-----------------------------------------------
Id client-1 --| 20
-----------------------------------------------
Id conjoint-1| 20
-----------------------------------------------
Id client-1--| 30
-----------------------------------------------
Id conjoint-1| 30
-----------------------------------------------
Il se peut y avoir un id client-1 sans conjoint (c-a-d sans id conjoint-1 pour la même valeur) ou un Id conjoint sans Id client ainsi de suite : tout les cas sans possible
L’objectif c’est de parcourir la liste et de mette dans un autre tableau,pour chaque occurrence L’id client et conjoint et sa valeur
Résultat final souhaitée ca sera :
---------------------------------------------------------
-----ID-CLI------ |-----ID-CONJ------|-----VALEUR-NV---
---------------------------------------------------------
Id client-1 | Id conjoint-1 | 10
---------------------------------------------------------
Id client-1 | Id conjoint-1 | 20
---------------------------------------------------------
Id client-1 | Id conjoint-1 | 30
---------------------------------------------------------
Voila mon algorithme que j’ai fait :
Perform varying I from 1 by 1 until I > Q-LIST-1
OR Flag-client-10-ok
--- If Valeur(I) = 10
------ IF ID(I) = Id-client
--------- Set Flag-client-10-ok to true
--------- ADD 1 to Q-NEW-LIST
--------- Move ID(I) to ID-CLI(Q-NEW-LIST)
------ End-if
--- End-if
End-perform
IF Set Flag-client-10-ok
--- Perform varying I from 1 by 1 until I > Q-LIST-1 OR Flag-conjoint-10-ok
------ If Valeur(I) = 10
--------- IF ID(I) = Id-conjoint
------------ Set Flag-conjoint-10-ok to true
* se positionner sur la même occurrence
------------ Move ID(I) to ID-CONJ(Q-NEW-LIST)
--------- End-if
------ End-if
--- End-perform
ELSE
--- Perform varying I from 1 by 1 until I > Q-LIST-1
OR Flag-conjoint-10-ok
------ If Valeur(I) = 10
--------- IF ID(I) = Id-conjoint
------------ Set Flag-conjoint-10-ok to true
------------ ADD 1 to Q-NEW-LIST
------------ Move ID(I) to ID-CONJ(Q-NEW-LIST)
--------- End-if
------ End-if
--- End-perform
La meme chose pour les valeur 20 et 30.
Est-ce qu’il y’a possibilité d’optimiser ce code,ou y’a-t-il une autre methode?
Merci pr votre aide![]()
Partager