Bonjour,
J'ai mis en place un petit algorithme pour résoudre un problème mais je ne sais pas s'il est optimisé.
Voici un descriptif du problème :
J'ai un fichier qui se présente ainsi :
1- Je recherche la ligne ENTETE le plus récente. Le champ N°3 est le critère utilisé puisqu'il s'agit d'une date.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 ENTETE AAAA 20101202 0000000003XXXX LIGNE1 BBBBBBBBBBB LIGNE2 CCCCCCCCCC LIGNE3 DDDDDDDDDD ENTETE AAAA 20101201 0000000004XXXX LIGNE1 EEEEEEEEEEE LIGNE2 FFFFFFFFFFF LIGNE3 GGGGGGGGGG LIGNE4 HHHHHHHHHH ENTETE AAAA 20101202 0000000005XXXX LIGNE1 IIIIIIIIIIIIIIIIII LIGNE2 JJJJJJJJJJJJJJJ LIGNE3 KKKKKKKKKKK LIGNE4 LLLLLLLLLLLL LIGNE5 MMMMMMMM
2- A partir du résultat obtenu en "1-", je recherche toutes les ENTETES les plus récentes. Ce qui est équivaut à :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ENTETE AAAA 20101202
3- A partir du résultat obtenu en "2-", je dois extraite les enregistrements associés à cette entete
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ENTETE AAAA 20101202 0000000003XXXX ENTETE AAAA 20101202 0000000005XXXX
Pour information, le 4ème champ de l'ENTETE indique ne nombre d'enregistrements associés. Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 ENTETE AAAA 20101202 0000000003XXXX LIGNE1 BBBBBBBBBBB LIGNE2 CCCCCCCCCC LIGNE3 DDDDDDDDDD ENTETE AAAA 20101202 0000000005XXXX LIGNE1 IIIIIIIIIIIIIIIIII LIGNE2 JJJJJJJJJJJJJJJ LIGNE3 KKKKKKKKKKK LIGNE4 LLLLLLLLLLLL LIGNE5 MMMMMMMM
Cela signifie que 3 enregistrements sont associés à cette entete.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ENTETE AAAA 20101202 0000000003XXXX
Cela signifie que 103 enregistrements sont associés à cette entete.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ENTETE AAAA 20101202 0000000103XXXX
Le souci que j'ai, est que je lis plusieurs fois le fichiers en entrée et cela peut être très couteux en terme de perf. Si vous avez une autre idée, je suis preneur.
Merci d'avance pour votre aide.
Cdlt





Répondre avec citation


même si je n'ai rien compris au code 
Partager