Bonjour,
La question que je vous pose a déjà été posé, mais il semblerait que les solutions apportées ne fonctionnent pas chez moi. Je précise quand même que je débute en perl.
Alors voilà, j'ai le fichier suivant :
.................
<cre>
.......................
<type_msg>103</type_msg>
..............
</cre>
................
La balise <cre></cre> peut se répeter indéfiniment et je voudrais extraire dans des fichiers séparés l'ensemble de la balise <cre></cre> en fonction de type_msg, pouvant prendre les valeurs 103,202 ou 204.
Je ne sait pas si celà est important, mais il peut y avoir des espaces, tabulations,sauts de lignes entre les balises.
J'ai donc à partir des réponses du forum fait ceci :
#! /usr/bin/perl
use warnings;use strict;
undef $/;
my $fic = <>;
chomp;
pos($fic)=0;
open(DEST1, ">103.txt");
open(DEST2, ">202.txt");
open(DEST3, ">204.txt");
while ( $fic =~ m/<cre>/gmc ){
print "Lecture du Fichier : \n";
if ($fic =~ / \G(.*?<type_msg>103.*?<\/cre>)/){
print "MT103\n";
print DEST1 $1;
}
if ($fic =~ / \G(.*<type_msg\>202.*<\/cre>)/){
print "MT202\n";
print DEST2 $1;
}
if ($fic =~ / \G(.*<type_msg>204.*<\/cre>)/){
print "MT204\n";
print DEST3 $1;
}
}
close($fic);
close(DEST1);
close(DEST2);
close(DEST3);
mais celà ne fonctionne pas. Il semblerait que le soucis soit au niveau des tests. Pourriez vous m'aider ?
Merci d'avance.
