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 :
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
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.

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
1
2
ENTETE AAAA 20101202 0000000003XXXX
ENTETE AAAA 20101202 0000000005XXXX
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
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
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
ENTETE AAAA 20101202 0000000003XXXX
Cela signifie que 3 enregistrements sont associés à cette entete.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ENTETE AAAA 20101202 0000000103XXXX
Cela signifie que 103 enregistrements sont associés à cette entete.

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