Bonjour,
Je travail sur le découpage de données contenues dans un fichier texte.
Ce fichier se présente sous une forme similaire:
inf_agh{100120141045@00000000000~03Module_010000~04Module020000@0000000{100120141045@00000000000~03Module_010000~04Module020000@0000000}04052014\
Mon objectif est de regrouper sous forme de tableau les données correspondant à des cartes "00000000000" situées entre les symboles "@" et "~" ou "@" et"}" .
Les données correspondant à des modules "03Module_010000" situées entre les symboles "~" et "~" ou "~" et "@".
J'ai réalisé le code suivant, mais au niveau du traitement des éléments "cartes" et "modules", seules les premières occurrences sont insérées dans le tableau correspondant.
résultat obtenu:
date: 100120141045
carte: 00000000000
module: 03Module_010000
code:
#decoupage du fichier
while ($ligne = <lire>){
#recuperation des elements compris entre [{ et @]
if ($ligne =~ /\{(\d*)@/) {
@date=$1
}
#si la ligne est comprise entre les symboles [@ et ~] et entre [@ et }]
if ($ligne =~ /@(\d*)[~|\}]/){
@carte=$1;
}
#si la ligne est comprise entre les caracteres [~ et ~] ou [~ et @]
if ($ligne =~ /~(\w*)[~|@]/){
@module=$1;
}
}
Je vous remercie d'avance pour votre aide =)
Partager