[PERL] Ecrire dans un fichier
Résolu
kayari
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
cyrille -
cyrille -
Bonjour tout le monde,
je programme en perl et j'ai besoin de modifier des paramètres dans un fichier automatiquement. voici un extrait du fichier :
n 108
m 56
s 2
t 4
a 1 2 1
j'ai besoin d'accéder aux lignes 3 et 4 et de changer 2 et 4 par d'autres valeurs (se répète en boucle). Je n'ai pas su changer des valeurs à l'intérieur du fichier.
Est ce que quelqu'un pourrait me donner une indication.
Merci d'avance
je programme en perl et j'ai besoin de modifier des paramètres dans un fichier automatiquement. voici un extrait du fichier :
n 108
m 56
s 2
t 4
a 1 2 1
j'ai besoin d'accéder aux lignes 3 et 4 et de changer 2 et 4 par d'autres valeurs (se répète en boucle). Je n'ai pas su changer des valeurs à l'intérieur du fichier.
Est ce que quelqu'un pourrait me donner une indication.
Merci d'avance
A voir également:
- [PERL] Ecrire dans un fichier
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
44 réponses
Voici le code qui fonctionne sous win
use warnings;use strict; my @fic_stat = <"D:/Documents and Settings/Administrateur/Bureau/staXiti*">; foreach my $fichier (@fic_stat){ $fichier =~ /\/staXiti_(\d{4})(\d\d)\.txt/; my $date = "${1}20$2"; my $fic = "resultat_" . "$date.txt"; open F_ECRIRE,">>$fic" or warn "E/S : $!\n"; open F_LIRE,"$fichier" or warn "E/S : $!\n"; while(<F_LIRE>){ s/^/$date = /; print F_ECRIRE; } } #*********** FIN TRAITEMENT **********# # # concateantion dans resultatfinal.txt open F_ECRIRE,">>resultatfinal.txt" or die "E/S : $!\n"; my @fic_res = <"D:/Documents\ and\ Settings/Administrateur/Bureau/resultat_*.txt">; foreach my $e(@fic_res){ open F_LIRE,"$e" or warn "E/S : ICI $!\n"; while(<F_LIRE>){ print F_ECRIRE; } print F_ECRIRE "\n"; } __END__
Mince !! le fichier résultat est toujours vide ?!?!
je comprends pas, j'ai essayé de changer le nom du repertoire, puis de mettre tout mes fichiers sur le bureau, mais ...ça ne va toujours pas.
je suis désolé de te demander encore un coup de main, mais d'ou peux venir le problème ?
je comprends pas, j'ai essayé de changer le nom du repertoire, puis de mettre tout mes fichiers sur le bureau, mais ...ça ne va toujours pas.
je suis désolé de te demander encore un coup de main, mais d'ou peux venir le problème ?
Il faut que tu me montre tout ce que tu fait.
Avec des imprimés écran.
Chez moi ça fonctionne sans problème.
Avec des imprimés écran.
Chez moi ça fonctionne sans problème.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
les fichiers et le script sont sur mon bureau
https://www.cjoint.com/?dnoa7cQVFD
le script est edité comme cela, et je pense que le problème est dans le script...
https://www.cjoint.com/?dnohVdyajX
les fichiers ont cette structure
https://www.cjoint.com/?dnodObwzzw
la console execute le script
https://www.cjoint.com/?dnoepZOjT3
et voila le resultat qui est vide ???
https://www.cjoint.com/?dnogcMWQvN
Qu'en penses tu ?
https://www.cjoint.com/?dnoa7cQVFD
le script est edité comme cela, et je pense que le problème est dans le script...
https://www.cjoint.com/?dnohVdyajX
les fichiers ont cette structure
https://www.cjoint.com/?dnodObwzzw
la console execute le script
https://www.cjoint.com/?dnoepZOjT3
et voila le resultat qui est vide ???
https://www.cjoint.com/?dnogcMWQvN
Qu'en penses tu ?
j'ai tout recommencer, et jai seuleument changé le Administrateur en M149067 dans le chemin du dossier. et ça ne marche toujours pas, le fichier resultatfinal est toujours vide. je comprends vraiment pas d'ou vient le probleme
Re,
c'est normal
regarde bien ton script :-)))
avant d'exécuter supprime resultatfinal.txt
regarde comme tu as écrit
@fic_res
enleve les antislashes, et mets le bon chemin
c'est ça que tu dois avoir
tu as oublié le M
c'est normal
regarde bien ton script :-)))
avant d'exécuter supprime resultatfinal.txt
regarde comme tu as écrit
@fic_res
enleve les antislashes, et mets le bon chemin
c'est ça que tu dois avoir
my @fic_res = <"D:/Documents and Settings/M149067/Bureau/resultat_*.txt">;
tu as oublié le M
my @fic_res = <"D:/Documents\ and\ Settings/149067/Bureau/resultat_*.txt">;
Affiche ici ton script que tu utilises.
Je vais le corriger.
C'est juste l'histoire d'écrire les chemins
pas d'antislashes, avec / et pas \ pour la séparation de dossiers, le chemin entre guillemets et ATTENTION à toutes les caractères
Des fois une lettre en plus ou en moins peut donner des choses bizarre
par exemple imagine toi une que tu veux parler des bit mets sans vouloir tu ajoute un e :-DD, ça ne sera pas la même chose :-DDDDD
Je vais le corriger.
C'est juste l'histoire d'écrire les chemins
pas d'antislashes, avec / et pas \ pour la séparation de dossiers, le chemin entre guillemets et ATTENTION à toutes les caractères
Des fois une lettre en plus ou en moins peut donner des choses bizarre
par exemple imagine toi une que tu veux parler des bit mets sans vouloir tu ajoute un e :-DD, ça ne sera pas la même chose :-DDDDD
#!C:/Perl/bin/perl.exe
use warnings;use strict;
my @fic_stat = <"D:/Documents and Settings/M149067/Bureau/staXiti*">;
foreach my $fichier (@fic_stat){
$fichier =~ /\/staXiti_(\d{4})(\d\d)\.txt/;
my $date = "${1}20$2";
my $fic = "resultat_" . "$date.txt";
open F_ECRIRE,">>$fic" or warn "E/S : $!\n";
open F_LIRE,"$fichier" or warn "E/S : $!\n";
while(<F_LIRE>){
s/^/$date = /;
print F_ECRIRE;
}
}
#*********** FIN TRAITEMENT **********#
#
# concateantion dans resultatfinal.txt
open F_ECRIRE,">>resultatfinal.txt" or die "E/S : $!\n";
my @fic_res = <"D:/Documents and Settings/M149067/Bureau/resultat_*.txt">;
foreach my $e(@fic_res){
open F_LIRE,"$e" or warn "E/S : ICI $!\n";
while(<F_LIRE>){
print F_ECRIRE;
}
print F_ECRIRE "\n";
}
__END__
use warnings;use strict;
my @fic_stat = <"D:/Documents and Settings/M149067/Bureau/staXiti*">;
foreach my $fichier (@fic_stat){
$fichier =~ /\/staXiti_(\d{4})(\d\d)\.txt/;
my $date = "${1}20$2";
my $fic = "resultat_" . "$date.txt";
open F_ECRIRE,">>$fic" or warn "E/S : $!\n";
open F_LIRE,"$fichier" or warn "E/S : $!\n";
while(<F_LIRE>){
s/^/$date = /;
print F_ECRIRE;
}
}
#*********** FIN TRAITEMENT **********#
#
# concateantion dans resultatfinal.txt
open F_ECRIRE,">>resultatfinal.txt" or die "E/S : $!\n";
my @fic_res = <"D:/Documents and Settings/M149067/Bureau/resultat_*.txt">;
foreach my $e(@fic_res){
open F_LIRE,"$e" or warn "E/S : ICI $!\n";
while(<F_LIRE>){
print F_ECRIRE;
}
print F_ECRIRE "\n";
}
__END__
et le resultatfinal.txt est comme ci dessous, il y a 20 aul ieu de la date escomptée:
20 = 00:01:37 10.100.62.52 /hit.xiti s=241243&s2=1&p=vers_PCC&hl=0x1x37&idclient=1165363297472 VXML -
20 = 00:01:38 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNC&hl=0x1x38&idclient=1165363297472 VXML -
20 = 00:01:39 10.100.62.52 /hit.xiti s=241243&s2=1&p=GSM_non_reconnu&hl=0x1x39&idclient=1165363297472 VXML -
20 = 00:01:40 10.100.62.52 /hit.xiti s=241243&s2=1&p=pas_sur_vol&hl=0x1x40&idclient=1165363297472 VXML -
20 = 00:01:41 10.100.62.52 /hit.xiti s=241243&s2=1&p=absence_contact_BO&hl=0x1x41&idclient=1165363297472 VXML -
20 = 00:03:03 10.100.62.52 /hit.xiti s=241243&s2=1&p=transfere_debordement&hl=0x3x3&idclient=1165363297472 VXML -
20 = 00:05:00 10.100.62.52 /hit.xiti s=241243&s2=1&p=vers_PCC&hl=0x5x0&idclient=1165363499970 VXML -
20 = 00:05:01 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNT&hl=0x5x1&idclient=1165363499970 VXML -
20 = 00:05:02 10.100.62.52 /hit.xiti s=241243&s2=1&p=GSM_non_reconnu&hl=0x5x2&idclient=1165363499970 VXML -
20 = 00:05:03 10.100.62.52 /hit.xiti s=241243&s2=1&p=pas_sur_vol&hl=0x5x3&idclient=1165363499970 VXML -
20 = 00:06:23 10.100.62.52 /hit.xiti s=241243&s2=1&p=transfere&hl=0x6x23&idclient=1165363499970 VXML -
20 = 00:08:13 10.100.62.52 /hit.xiti s=241243&s2=1&p=vers_CLD&hl=0x8x13&idclient=1165363693516 VXML -
20 = 00:08:14 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNT&hl=0x8x14&idclient=1165363693516 VXML -
20 = 00:08:19 10.100.62.52 /hit.xiti s=241243&s2=1&p=transfere&hl=0x8x19&idclient=1165363693516 VXML -
20 = 00:01:37 10.100.62.52 /hit.xiti s=241243&s2=1&p=vers_PCC&hl=0x1x37&idclient=1165363297472 VXML -
20 = 00:01:38 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNC&hl=0x1x38&idclient=1165363297472 VXML -
20 = 00:01:39 10.100.62.52 /hit.xiti s=241243&s2=1&p=GSM_non_reconnu&hl=0x1x39&idclient=1165363297472 VXML -
20 = 00:01:40 10.100.62.52 /hit.xiti s=241243&s2=1&p=pas_sur_vol&hl=0x1x40&idclient=1165363297472 VXML -
20 = 00:01:41 10.100.62.52 /hit.xiti s=241243&s2=1&p=absence_contact_BO&hl=0x1x41&idclient=1165363297472 VXML -
20 = 00:03:03 10.100.62.52 /hit.xiti s=241243&s2=1&p=transfere_debordement&hl=0x3x3&idclient=1165363297472 VXML -
20 = 00:05:00 10.100.62.52 /hit.xiti s=241243&s2=1&p=vers_PCC&hl=0x5x0&idclient=1165363499970 VXML -
20 = 00:05:01 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNT&hl=0x5x1&idclient=1165363499970 VXML -
20 = 00:05:02 10.100.62.52 /hit.xiti s=241243&s2=1&p=GSM_non_reconnu&hl=0x5x2&idclient=1165363499970 VXML -
20 = 00:05:03 10.100.62.52 /hit.xiti s=241243&s2=1&p=pas_sur_vol&hl=0x5x3&idclient=1165363499970 VXML -
20 = 00:06:23 10.100.62.52 /hit.xiti s=241243&s2=1&p=transfere&hl=0x6x23&idclient=1165363499970 VXML -
20 = 00:08:13 10.100.62.52 /hit.xiti s=241243&s2=1&p=vers_CLD&hl=0x8x13&idclient=1165363693516 VXML -
20 = 00:08:14 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNT&hl=0x8x14&idclient=1165363693516 VXML -
20 = 00:08:19 10.100.62.52 /hit.xiti s=241243&s2=1&p=transfere&hl=0x8x19&idclient=1165363693516 VXML -
non, aucune modif dans les autres fichiers originaux
et seulement un fichier crée en plus de resultatfinal.txt : resultat_20.txt
d'ou cet ajout du 20 au lieu de la date...
et seulement un fichier crée en plus de resultatfinal.txt : resultat_20.txt
d'ou cet ajout du 20 au lieu de la date...
ben, c'est ta faute perl ecrire dans un fichier#14
fait une copie/coller de ton dernier script
supprime les fichiers resultat_ *** et resultatfinal.txt
fait une copie/coller de ton dernier script
supprime les fichiers resultat_ *** et resultatfinal.txt
jai fait les modif en stat au lieu du sta
ok, c bon, voila tout marche
je te remercie pour tout (ton aide et ta patience)
le problème provenait du fait que je me suis certainement trompé dans les post précedent en expliquant, j'ai du oublié ce T a la fin de stat.
Milles merci, je suis super content
Bon courage et a bientot lors de ma prochaine surpirse galere sur mon projet
ok, c bon, voila tout marche
je te remercie pour tout (ton aide et ta patience)
le problème provenait du fait que je me suis certainement trompé dans les post précedent en expliquant, j'ai du oublié ce T a la fin de stat.
Milles merci, je suis super content
Bon courage et a bientot lors de ma prochaine surpirse galere sur mon projet
naaaa, en fait, il reste un ptit problème
regarde mon fichier resultat
06122009 = 22:21:14 10.100.62.52 /hit.xiti s=241243&s2=1&p=vers_PCC&hl=22x21x14&idclient=1165702873855 VXML -
06122009 = 22:21:15 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNT&hl=22x21x15&idclient=1165702873855 VXML -
06122009 = 22:21:18 10.100.62.52 /hit.xiti s=241243&s2=1&p=transfere&hl=22x21x18&idclient=1165702873855 VXML -
06122009 = 22:26:58 10.100.62.52 /hit.xiti s=241243&s2=1&p=vers_PN&hl=22x26x58&idclient=1165703217863 VXML -
06122009 = 22:26:59 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNT&hl=22x26x59&idclient=1165703217863 VXML -
06122009 = 22:27:15 10.100.62.52 /hit.xiti s=241243&s2=1&p=transfere&hl=22x27x15&idclient=1165703217863 VXML -
06122010 = 04:06:42 10.100.62.52 /hit.xiti s=241243&s2=1&p=vers_CLD&hl=4x6x42&idclient=1165723601630 VXML -
06122010 = 04:06:43 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNT&hl=4x6x43&idclient=1165723601630 VXML -
06122010 = 04:06:44 10.100.62.52 /hit.xiti s=241243&s2=1&p=GSM_reconnu&hl=4x6x44&idclient=1165723601630 VXML -
06122010 = 04:06:45 10.100.62.52 /hit.xiti s=241243&s2=1&p=erreur_timeout&hl=4x6x45&idclient=1165723601630 VXML -
06122010 = 04:07:01 10.100.62.52 /hit.xiti s=241243&s2=1&p=raccroche_applicatif&hl=4x7x1&idclient=1165723601630 VXML -
06122010 = 04:07:17 10.100.62.52 /hit.xiti s=241243&s2=1&p=vers_CLD&hl=4x7x17&idclient=1165723637136 VXML -
il y a un problème avec les expressions regulières, la date à inscrire doit etre au format 06122006, 07122006, 08122006... et elle actuellement 06122006, 06122007, 06122008...
c pa grand chose, mais si on pouvait voir ça stp ?
regarde mon fichier resultat
06122009 = 22:21:14 10.100.62.52 /hit.xiti s=241243&s2=1&p=vers_PCC&hl=22x21x14&idclient=1165702873855 VXML -
06122009 = 22:21:15 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNT&hl=22x21x15&idclient=1165702873855 VXML -
06122009 = 22:21:18 10.100.62.52 /hit.xiti s=241243&s2=1&p=transfere&hl=22x21x18&idclient=1165702873855 VXML -
06122009 = 22:26:58 10.100.62.52 /hit.xiti s=241243&s2=1&p=vers_PN&hl=22x26x58&idclient=1165703217863 VXML -
06122009 = 22:26:59 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNT&hl=22x26x59&idclient=1165703217863 VXML -
06122009 = 22:27:15 10.100.62.52 /hit.xiti s=241243&s2=1&p=transfere&hl=22x27x15&idclient=1165703217863 VXML -
06122010 = 04:06:42 10.100.62.52 /hit.xiti s=241243&s2=1&p=vers_CLD&hl=4x6x42&idclient=1165723601630 VXML -
06122010 = 04:06:43 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNT&hl=4x6x43&idclient=1165723601630 VXML -
06122010 = 04:06:44 10.100.62.52 /hit.xiti s=241243&s2=1&p=GSM_reconnu&hl=4x6x44&idclient=1165723601630 VXML -
06122010 = 04:06:45 10.100.62.52 /hit.xiti s=241243&s2=1&p=erreur_timeout&hl=4x6x45&idclient=1165723601630 VXML -
06122010 = 04:07:01 10.100.62.52 /hit.xiti s=241243&s2=1&p=raccroche_applicatif&hl=4x7x1&idclient=1165723601630 VXML -
06122010 = 04:07:17 10.100.62.52 /hit.xiti s=241243&s2=1&p=vers_CLD&hl=4x7x17&idclient=1165723637136 VXML -
il y a un problème avec les expressions regulières, la date à inscrire doit etre au format 06122006, 07122006, 08122006... et elle actuellement 06122006, 06122007, 06122008...
c pa grand chose, mais si on pouvait voir ça stp ?
je suis trop fort
C'est bien :-))
C'est bien :-))
Salut, je te dérange encore avec mes problèmes d'insertion d'une date dans un fichier.
le code que tu m'as fourni fonctionne bien avec mes anciens fichiers mais il ne fonctionne pas pour mes nouveaux fichiers.
le code :
#!C:/Perl/bin/perl.exe
use warnings;use strict;
my @fic_stat = <"D:/Documents and Settings/M149067/Bureau/Simon/DB/Xiti/Sem10/statXiti*">;
foreach my $fichier (@fic_stat){
$fichier =~ /\/statXiti_(\d{4})(\d\d)\.txt/;
my $date = "20${1}$2";
my $fic = "resultat_" . "$date.txt";
open F_ECRIRE,">>$fic" or warn "E/S : $!\n";
open F_LIRE,"$fichier" or warn "E/S : $!\n";
while(<F_LIRE>){
s/^/$date = /;
print F_ECRIRE;
}
}
#*********** FIN TRAITEMENT **********#
#
# concateantion dans resultatfinal.txt
open F_ECRIRE,">>resultatfinal.txt" or die "E/S : $!\n";
my @fic_res = <"D:/Documents and Settings/M149067/Bureau/Simon/DB/Xiti/Sem10/resultat_*.txt">;
foreach my $e(@fic_res){
open F_LIRE,"$e" or warn "E/S : ICI $!\n";
while(<F_LIRE>){
print F_ECRIRE;
}
print F_ECRIRE "\n";
}
__END__
les fichiers :
statXiti_070305.txt, statXiti_070306.txt, statXiti_070307.txt, statXiti_070308.txt...
qui contiennent
04:44:18 10.100.62.52 /hit.xiti s=241243&s2=1&p=vers_PN
04:44:21 10.100.62.52 /hit.xiti s=241243&s2=1&p=raccroche_util
05:37:06 10.100.62.52 /hit.xiti s=241243&s2=1&p=vers_PCC
05:37:07 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNC
les fichiers resultats sont bon sauf que ils contiennent des lignes étranges a la fin de chaque fichier (qui sont ensuite concaténés avec ces lignes bizarres):
20070305 = 22:17:31 10.100.62.52 /hit.xiti s=241243&s2=1&p=vers_PCC
20070305 = 22:17:32 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNC
20070305 = 22:17:35 10.100.62.52 /hit.xiti s=241243&s2=1&p=transfere
20070305 = PK —vp6¹ä%ês2 1» statXiti_070305.txt¥K^7r†÷ò¼š]&¼_xÈfÆ BУéxdG-ýóCž¯û;<õ¾TŠl»-oìzúÔE²Hšð.„w¶|gÍ1LîÑ}÷¯?}úúÇçO_?}÷ô½Öÿ‡'÷½ýïßÿþøåéÃ_~üÃO?žCx¶åŸþöñçOŸ¿~omö&Õsõæ»ÿþŸ?ÿé»ùç2ÁY-áËÃÇ_~ùøÓã‡ß¾~úùÓÓÃ×Çß¾ÜyÎþ¿¼øÎçw&iy·/úᇎˆÏ>?'Ah?.†ì%!k ùñž•ÂÕùÿúó‡/ùüù·;DÚd±NùúåáóÓß¿<ÞÖie!ìP(¢:o«Dx-â4D“î•ÒÕŽ$•ÔÄ•€Í‚+]•
ñ§ÒB"AíOw5áèG\xÕ
20070305 = gmªƒX£…<~ùÒ2Ƈ‡¿ýôøôé—Ïw5:’S“îÿð·Ç¿þòåoÿh²ï<÷ÿóÒ;c<l´~z6Ä¿B°©ý- jÿúËïïÂÁµ&ÂÕ®%¬@ÀÅ8Ä©u4>:Î)æ£7Œ‡à#|ˆ¹H€ú{‹xòÛ3áQm‘KÊêˆHì—Óú‹‚l$Y=zëŒ÷’°ÕߟÒ!«sé^BE¶~
20070305 = †«ï‚ú®qíês€ÏH¶ø”ŠD-⮤.=(¥«£ "»S &õè!LÑ0x†÷ú¼šÂûgYoæÔ²xLUÔq·D±0®6„PQC "¾sêœ!4ŸäŒ]ÎjCŸ*jÒÑÄTºW@ê¨E4Ú0ò²½d½^. 9“+ Ôqª(/¢ÂõµÔP&ã4aÓ~´Œ«Ó~ QB›S‰Pᥔ½IGpéêŒ*”Ô˜W £,|PR!Ÿ‘½³áZÀtĺ#uéàIé»ù¨3 !£Ú‚·ŽJjžJ|µ4H@XÈG§pHG\¸SࢢŽp`†È†¹j¨%¨`J)ú* j¼xÑ!ÕÏ…«Õ/ª‹‚f ¯®Á„r;–…»£J˵xIPûÒÝM8z¾ËB™!êòZÜ/€ŠKqµeŠbЍ#áTPÅ¥.ÜíÂÁˆ@®ÍØÔ¾úk36°suÑÖ%B ÷l×¥CL¤«•ÁÜ)¨&NQç#a
20070305 = Çf¶Œá|I˜Â‡ò.ÅZ$Aý§%®ÅM„ïgÕ¬Ê!ú¹¹´ƒ#3tÆðï®üs@C—]r±aˆ&-Á¥¿ÁžÌl9e;sx–9‚w¾ekP[{TÉo”.}‰3¨’Þ<ËNüKÔîD¾„82âòPz7w$ci4±4Õ‚:îNkG’ú¸pµŠÐ‘¤@
20070305 = ѯMJ;°ÕIÎÐ`RDL°¡.ÌFC8¨É&ÒÕŽÄ,ëèœâÕËh
Je pense qu'il a une incohérence entre le script, les fichiers et les chemins, mais je ne vois pas ce que cela pourrait etre ?
Merci d'avance
le code que tu m'as fourni fonctionne bien avec mes anciens fichiers mais il ne fonctionne pas pour mes nouveaux fichiers.
le code :
#!C:/Perl/bin/perl.exe
use warnings;use strict;
my @fic_stat = <"D:/Documents and Settings/M149067/Bureau/Simon/DB/Xiti/Sem10/statXiti*">;
foreach my $fichier (@fic_stat){
$fichier =~ /\/statXiti_(\d{4})(\d\d)\.txt/;
my $date = "20${1}$2";
my $fic = "resultat_" . "$date.txt";
open F_ECRIRE,">>$fic" or warn "E/S : $!\n";
open F_LIRE,"$fichier" or warn "E/S : $!\n";
while(<F_LIRE>){
s/^/$date = /;
print F_ECRIRE;
}
}
#*********** FIN TRAITEMENT **********#
#
# concateantion dans resultatfinal.txt
open F_ECRIRE,">>resultatfinal.txt" or die "E/S : $!\n";
my @fic_res = <"D:/Documents and Settings/M149067/Bureau/Simon/DB/Xiti/Sem10/resultat_*.txt">;
foreach my $e(@fic_res){
open F_LIRE,"$e" or warn "E/S : ICI $!\n";
while(<F_LIRE>){
print F_ECRIRE;
}
print F_ECRIRE "\n";
}
__END__
les fichiers :
statXiti_070305.txt, statXiti_070306.txt, statXiti_070307.txt, statXiti_070308.txt...
qui contiennent
04:44:18 10.100.62.52 /hit.xiti s=241243&s2=1&p=vers_PN
04:44:21 10.100.62.52 /hit.xiti s=241243&s2=1&p=raccroche_util
05:37:06 10.100.62.52 /hit.xiti s=241243&s2=1&p=vers_PCC
05:37:07 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNC
les fichiers resultats sont bon sauf que ils contiennent des lignes étranges a la fin de chaque fichier (qui sont ensuite concaténés avec ces lignes bizarres):
20070305 = 22:17:31 10.100.62.52 /hit.xiti s=241243&s2=1&p=vers_PCC
20070305 = 22:17:32 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNC
20070305 = 22:17:35 10.100.62.52 /hit.xiti s=241243&s2=1&p=transfere
20070305 = PK —vp6¹ä%ês2 1» statXiti_070305.txt¥K^7r†÷ò¼š]&¼_xÈfÆ BУéxdG-ýóCž¯û;<õ¾TŠl»-oìzúÔE²Hšð.„w¶|gÍ1LîÑ}÷¯?}úúÇçO_?}÷ô½Öÿ‡'÷½ýïßÿþøåéÃ_~üÃO?žCx¶åŸþöñçOŸ¿~omö&Õsõæ»ÿþŸ?ÿé»ùç2ÁY-áËÃÇ_~ùøÓã‡ß¾~úùÓÓÃ×Çß¾ÜyÎþ¿¼øÎçw&iy·/úᇎˆÏ>?'Ah?.†ì%!k ùñž•ÂÕùÿúó‡/ùüù·;DÚd±NùúåáóÓß¿<ÞÖie!ìP(¢:o«Dx-â4D“î•ÒÕŽ$•ÔÄ•€Í‚+]•
ñ§ÒB"AíOw5áèG\xÕ
20070305 = gmªƒX£…<~ùÒ2Ƈ‡¿ýôøôé—Ïw5:’S“îÿð·Ç¿þòåoÿh²ï<÷ÿóÒ;c<l´~z6Ä¿B°©ý- jÿúËïïÂÁµ&ÂÕ®%¬@ÀÅ8Ä©u4>:Î)æ£7Œ‡à#|ˆ¹H€ú{‹xòÛ3áQm‘KÊêˆHì—Óú‹‚l$Y=zëŒ÷’°ÕߟÒ!«sé^BE¶~
20070305 = †«ï‚ú®qíês€ÏH¶ø”ŠD-⮤.=(¥«£ "»S &õè!LÑ0x†÷ú¼šÂûgYoæÔ²xLUÔq·D±0®6„PQC "¾sêœ!4ŸäŒ]ÎjCŸ*jÒÑÄTºW@ê¨E4Ú0ò²½d½^. 9“+ Ôqª(/¢ÂõµÔP&ã4aÓ~´Œ«Ó~ QB›S‰Pᥔ½IGpéêŒ*”Ô˜W £,|PR!Ÿ‘½³áZÀtĺ#uéàIé»ù¨3 !£Ú‚·ŽJjžJ|µ4H@XÈG§pHG\¸SࢢŽp`†È†¹j¨%¨`J)ú* j¼xÑ!ÕÏ…«Õ/ª‹‚f ¯®Á„r;–…»£J˵xIPûÒÝM8z¾ËB™!êòZÜ/€ŠKqµeŠbЍ#áTPÅ¥.ÜíÂÁˆ@®ÍØÔ¾úk36°suÑÖ%B ÷l×¥CL¤«•ÁÜ)¨&NQç#a
20070305 = Çf¶Œá|I˜Â‡ò.ÅZ$Aý§%®ÅM„ïgÕ¬Ê!ú¹¹´ƒ#3tÆðï®üs@C—]r±aˆ&-Á¥¿ÁžÌl9e;sx–9‚w¾ekP[{TÉo”.}‰3¨’Þ<ËNüKÔîD¾„82âòPz7w$ci4±4Õ‚:îNkG’ú¸pµŠÐ‘¤@
20070305 = ѯMJ;°ÕIÎÐ`RDL°¡.ÌFC8¨É&ÒÕŽÄ,ëèœâÕËh
Je pense qu'il a une incohérence entre le script, les fichiers et les chemins, mais je ne vois pas ce que cela pourrait etre ?
Merci d'avance