probleme parser et regroupe des elements - Perl - Programmation
Marsh Posté le 01-04-2011 à 15:15:19
Bonjour,
J'ai mis vos données dans un fichier nommé couples .txt, et ecrit le script couples.pl suivant:
Code :
|
Sur vos données initiales, ça me donne ceci:
C169v2-00156 Aster-03172 |
Comment l'algo marche:
Pour chaque ligne lue, je parse avec une expression régulière ad-hoc et construis un tableau anonyme a 4 entrées, ma première entrée est la ligne lue (moins son retour chariot final), la seconde la valeur numérique après le premier - et avant la tabulation, la troisième entrée la valeur numérique après le second - et avant la fin de ligne, et la 4e entrée, 0, pour un indicateur positionné plus tard.
exemple: ligne lue C169v2-09367 Aster-03744 ==> tableau anonyme [C169v2-09367 Aster-03744, 09367, 03744, 0]
Je range ce tableau anonyme dans un tableau global @datas (ie chaque élément de @datas est une référence à un tableau anonyme ainsi créé).
Ensuite je trie @datas suivant les deux valeurs numériques des tableaux anonymes qui constituent ses éléments (ie on ordonne @datas par rapport a la valeur associée à C169v2, et en cas d'égalité, par rapport à la valeur qui suit Aster).
Ensuite, je parcours @datas (trié) et je teste si la valeur pour C169v2 de deux éléments successifs se suit (et est croissante, puisque j'ai trié). Si oui je teste si le valeur pour Aster se suit (dans un sens ou l'autre). Si oui, je positionne l'indicateur (le 4e champ du tableau anonyme) a 1 pour ces deux éléments successifs.
Enfin, je parcours @datas, et crée un tableau @result dont le contenu est le premier champ du tableau anonyme (donc ce qui a été lu dans le fichier) pour les éléments dont l'indicateur a été positionné à 1.
A+,
Marsh Posté le 13-04-2011 à 13:01:44
>> Il n'y a pas le debut du message
Ben si vous parlez de votre message initial, c'est suite a une édition que vous avez faite, non?
Citation : Message édité par shadow19c le 13-04-2011 à 09:15:07 |
A+,
Marsh Posté le 01-04-2011 à 10:02:52
Bonjour,
j'ai un souci , voici un fichier d'entree:
J'ai pense a mettre tout dans un hash mais faut pas que je perds le couple a chaque fois....
Merci
Message édité par shadow19c le 13-04-2011 à 09:15:07